1.パケット単位、カウントおよびソート
1.1プレスパケットList
、およびそれが総数が表示されます。
パッケージcom.mkyong.java8。 輸入java.util.Arrays。 輸入はjava.util.List; 輸入java.util.Map; 輸入java.util.function.Function。 輸入java.util.stream.Collectors。 パブリッククラスJava8Example1 { パブリック静的無効メイン(文字列[] args){ // 3リンゴ、2バナナ、他の1つの リストの<string>商品= は、Arrays.asList( "APPLE"、 "APPLE"、 "バナナ"、 "APPLE" 、「オレンジ」、「バナナ」、「パパイヤ」)。 地図<文字列、ロング>結果= items.stream()。(集める コレクター。 機能。 のSystem.out.println(結果)。 } }
出力
{ パパイヤ= 1、オレンジ= 1、2 =バナナ、リンゴ= 3 }
1.2加えたソート。
パッケージcom.mkyong.java8。 輸入java.util.Arrays。 輸入java.util.LinkedHashMap。 輸入はjava.util.List; 輸入java.util.Map; 輸入java.util.function.Function。 輸入java.util.stream.Collectors。 パブリッククラスJava8Example2 { パブリック静的無効メイン(文字列[] args){ // 3リンゴ、2バナナ、他の1つの リストの<string>商品= は、Arrays.asList( "APPLE"、 "APPLE"、 "バナナ"、 "APPLE" 、「オレンジ」、「バナナ」、「パパイヤ」)。 地図<文字列、ロング>結果= items.stream()。(コレクト (Collectors.groupingByを )(Function.identityを ); 地図<文字列、ロング> finalMap =新しいのLinkedHashMap <>(); //マップをソートし、finalMapに追加 result.entrySet()ストリーム()。 .sorted(のMap.Entry <文字列、ロング> comparingByValueを()。 forEachOrdered(E().reversed) - 。> finalMap.put(E。 getKey()、e.getValue()))。 System.out.println(finalMap)。 } }
出力
{ リンゴ= 3、バナナ= 2、パパイヤ= 1、オレンジ= 1 }