2017-06-30 4 views
0

私はArrayListに名前を持っています。最も簡単な方法で最も一般的な要素を探したいと思います。私はCollectoins.max()を使用しようとしましたが、戻り値が正しくありませんでした。JavaでMap(またはSet?)を使用して最も一般的な要素を見つける方法は?

azキーと名前の数量を値として使用してHashMapを作成しましたが、最高値の名前を書き込む方法がわかりませんでした。

(最高値を持つ2つ以上の名前がある場合は、実際に、私はそれらのすべてを取得する必要があります。)

+0

たぶん私たちは話しています** Collections.frequency(コレクション c、オブジェクトo)**ここですか?最も一般的な要素は、maxの代わりに** frequency **と密接に関連しています。 – ShayHaned

答えて

0
import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.Collections; 
import java.util.HashMap; 
import java.util.Map; 

パブリッククラスStringChecker {

public static void main(String[] args) { 
    ArrayList<String> string; 
    string = new ArrayList<>(Arrays.asList("Mah", "Bob", "mah", "bat", "MAh", "BOb")); 
    Map<String, Integer> wordMap = new HashMap<String, Integer>(); 

    for (String st : string) { 
     String input = st.toUpperCase(); 
     if (wordMap.get(input) != null) { 
      Integer count = wordMap.get(input) + 1; 
      wordMap.put(input, count); 
     } else { 
      wordMap.put(input, 1); 
     } 
    } 
    System.out.println(wordMap); 
    Object maxEntry = Collections.max(wordMap.entrySet(), Map.Entry.comparingByValue()).getKey(); 
    System.out.println("maxEntry = " + maxEntry); 
} 

}

関連する問題