在Java8中通过方法引用将映射转换为列表
我有下面通过Java8将map转换为list的方法,但我想使用方法引用而不是lambda,请建议如何将下面的程序转换为使用Java8的方法引用功能 下面是我的程序在Java8中通过方法引用将映射转换为列表,java,java-8,Java,Java 8,我有下面通过Java8将map转换为list的方法,但我想使用方法引用而不是lambda,请建议如何将下面的程序转换为使用Java8的方法引用功能 下面是我的程序 Map<Integer, String> map = new HashMap<>(); map.put(10, "apple"); map.put(20, "orange"); map.put(30, "banana"); map.put(40, "watermelon"); map.p
Map<Integer, String> map = new HashMap<>();
map.put(10, "apple");
map.put(20, "orange");
map.put(30, "banana");
map.put(40, "watermelon");
map.put(50, "dragonfruit");
System.out.println("\n1. Export Map Key to List...");
List<Integer> result = map.entrySet()
.stream()
.map(x -> x.getKey())
.collect(Collectors.toList());
System.out.println(result);
Map Map=newhashmap();
地图放置(10,“苹果”);
地图放置(20,“橙色”);
地图放置(30,“香蕉”);
地图放置(40,“西瓜”);
地图放置(50,“龙果”);
System.out.println(“\n1.将映射键导出到列表…”);
列表结果=map.entrySet()
.stream()
.map(x->x.getKey())
.collect(Collectors.toList());
系统输出打印项次(结果);
您在这里调用的map(x->x.getKey())
实际上是
也许试试这个
map(Map.Entry::getKey)
只需询问地图的keySet()
。它返回一组键
Map<Integer, String> map = new HashMap<>();
map.put(10, "apple");
map.put(20, "orange");
map.put(30, "banana");
map.put(40, "watermelon");
map.put(50, "dragonfruit");
System.out.println("\n1. Export Map Key to List...");
Collection<Integer> result = map.keySet();
System.out.println(result);
Map Map=newhashmap();
地图放置(10,“苹果”);
地图放置(20,“橙色”);
地图放置(30,“香蕉”);
地图放置(40,“西瓜”);
地图放置(50,“龙果”);
System.out.println(“\n1.将映射键导出到列表…”);
收集结果=map.keySet();
系统输出打印项次(结果);
您有没有查看?您可以使用Map#keySet
方法,它返回一个集
,但这应该不是问题。当您只对键感兴趣时,使用.entrySet()
没有意义。只需从一开始就使用keySet()
即可将您从.map(x->x.getKey())
步骤中解救出来。另一方面,您根本不需要流操作。如果您确实需要一个List
快照而不是keySet()
视图,您只需使用List result=new ArrayList(map.entrySet())代码>。