関数型プログラミングのストリームを使用することで、処理java8です
文字の分離を達成するために1。
ワードストリーム処理として文字列全体をマッピング
地図< String []型、ロング> collect14 = Stream.of( "こんにちは単語どのようにしている" ) の.map(O - > o.split( "" )) // .flatMap(配列::ストリーム) .collect(コレクター.groupingBy(O - > O、Collectors.counting()))。 System.out.println(JSONObject.toJSONString(collect14))。
输出:{[ "H"、 "E"、 "L"、 "L"、 "O"、 " " "W"、 "O"、 "R"、 "D"、""、 "H"、 "O"、 "W"、 " " "A"、 "R"、 "E"、""、 "Y"、 "O"、 "U"]:1}
(異なる地図でflatMapを参照対流flatMap平坦化処理によって文字列の繰り返し周波数の統計を達成するために2 java8ストリームプログラム A点6が示します)
地図<文字列、ロング> collect14 Stream.of =( "こんにちは言葉はどのようにしている" ) の.map(O - > o.split( "" )) //大と上記で得られた.flatMap(アレイ、::ストリーム)文字ストリームにブラケットワードストリーム .collect(Collectors.groupingBy(O - > O、Collectors.counting())); のSystem.out.println(JSONObject.toJSONString(collect14))。
输出:{ " ":4"、 ":1、" R ":2、" D ":1、" U ":1、" E ":2、" W ":2、" H":2、 "Y":1、 "L":2、 "O":4}
3.ストリームへのエントリのマップは、フィルタKVをマッピングします
文字列collect14 = Stream.of( "こんにちは単語どのようにしている" ) の.map(O - > o.split( "" )) .flatMap(配列::ストリーム) .collect(Collectors.groupingBy(O - > O、コレクター.counting())) .entrySet() .stream() .filter(O - > o.getValue()== 2 ) .limit( 1 ) .MAP(O - > o.getKey()) .collect(コレクター。接合()); System.out.println(collect14)。
出力:R