2017-10-11 12 views
-2

マップをJava 8でリストに変換するには以下の方法がありますが、ラムダの代わりにメソッド参照を使用したい場合は、以下のプログラムをどのように変換するかをアドバイスしてくださいJavaの8以下マップをJava 8のメソッド参照でリストに変換する

のメソッド参照機能は、あなたがここにmap(x -> x.getKey())を呼んでいる何を私のプログラム

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); 
+2

[Map docs](https://docs.oracle.com/javase/7/docs/api/java/util/Map.html)で調べましたか?あなたは 'Map#keySet'メソッドを使うことができ、' Set'を返しますが、それは問題ではありません。 – Shirkam

+1

最初の場所にあるキーだけに興味があるときは '.entrySet()'を使う意味がありません。最初から 'keySet()'を使うだけで、 '.map(x - > x.getKey())'ステップからあなたを救うことができます。一方、ストリーム操作はまったく必要ありません。 'keySet()'ビューの代わりに本当に 'List'スナップショットが必要な場合は' List result = new ArrayList <>(map.entrySet()); 'を使うだけです。 – Holger

答えて

1

地図の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); 
関連する問題