重複の可能性:
マップ内の各エントリを反復処理するにはどうすればよいですか?
文字列の配列である入力(データ)を受け取り、出現頻度の順に返し、入力に出現数が同じ場合はアルファベット順に返すプログラムを作成しています。HashMapを使用して、各文字列を配列に表示される回数にマップしました。その後、forループを使用して各表示回数を繰り返すことを考えましたが、次のようなコマンドを見つけることができません。ハッシュマップ内の一意の値の数を返します。誰かがこの値を取得する方法を知っていますか?
また、私が説明したタスクを実行するためのより簡単な方法がある場合は、アドバイスを歓迎します。
HashMap<String, Integer> sortmap = new HashMap<String, Integer>();
ArrayList<String> stringlist = new ArrayList<String>();
ArrayList<String> stringlist2 = new ArrayList<String>();
for(String x : data)
{
if(sortmap.containsKey(x)){
sortmap.put(x, sortmap.get(x)+1);
}
else{
sortmap.put(x, 1);
}
}
for (String s : sortmap.keySet()){
for (int i : sortmap.values()){
if (sortmap.get(s) == i){
stringlist2.add(s);
}
}
}