1

ハッシュ マップを反復処理して最初の 10 個の要素を見つける方法は?

4

3 に答える 3

0

一度だけの場合は、List に変換してから LinkedHashMap に戻すことで、HashMap を並べ替えることができます。

    Map<String, Integer> map = new HashMap<>();
    map.put("A", 13);
    map.put("B", 11);
    map.put("C", 27);
    map.put("D", 38);
    map.put("E", 25);
    map.put("F", 12);
    map.put("G", 25);
    map.put("D", 35);
    map.put("H", 28);
    map.put("R", 13);
    map.put("N", 24);
    map.put("T", 37);

    // Take a List copy of the Map
    List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(map.entrySet());

    // Sort the list by the Value
    Collections.sort(list, new Comparator<Entry<String, Integer>>() {
        @Override
        public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
            return (o1.getValue()).compareTo(o2.getValue());
        }
    });

    // Create new Map (use LinkedHashMap to maintain order)
    Map<String, Integer> sortedMap = new LinkedHashMap<String, Integer>();
    for (Entry<String, Integer> entry : list) {
        sortedMap.put(entry.getKey(), entry.getValue());
    }
于 2016-10-07T12:39:00.160 に答える
-1

ほとんどの HashMap はいかなる種類の順序も保持しないため、すべてのキーを読み取って並べ替え、対応する値をハッシュから取得する必要がある場合があります。言語とサンプルコードを教えていただければ、誰かがさらに助けてくれるかもしれません。

于 2013-09-27T21:29:48.193 に答える