Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java8中通过方法引用将映射转换为列表_Java_Java 8 - Fatal编程技术网

在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

我有下面通过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.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())