2017-10-10 9 views
1

入力はn個の文字列です。私は、ユニークな値だけでなく、これらの文字列の大文字小文字を区別しない出現の数を取得したい。Java文字列最大最小ユニークオカレンス

私は配列で入力を取得する考えがあります。それをソートし、ループを実行して出現を計算します。他の方法はありますか?

+0

入力( n文字列の数)はどのように見えますか?それは配列、リストまたは地図ですか?それとも何か? – deHaar

+3

文字列を出現数にマップします。 – Patrick

+0

それは文字列の配列 – Emmanual

答えて

2

あなたが望む結果を得るためにストリームAPI機能を使用することができます。

List<String> list = Arrays.asList("hello","world","Hola","Mundo","hello", "world","Hola","Mundo","mundo","Hello","Hola","mundo","Mundo"); 

Map<String, Long> ocurrences = list 
     .stream() 
     .map(String::toLowerCase) // make case insensitive 
     .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); 

System.out.println(ocurrences); 

出力:

{世界= 2、ムンド= 5、こんにちは= 3、はいはい= 3}

1

これは、キーがユニークな単語であり、各値が出現した回数を示すマップを返します。

+1

'整数整数= map.getOrDefault(stringAsLowerCase、0);'を使うと、条件付き論理を取り除くことができます – Michael

関連する問題