ホームページ > Java > &#&チュートリアル > Java HashMap を値によって昇順および降順に並べ替えるにはどうすればよいですか?

Java HashMap を値によって昇順および降順に並べ替えるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-26 17:38:15
オリジナル
649 人が閲覧しました

How to Sort a Java HashMap by Values in Ascending and Descending Order?

値による HashMap の並べ替え

Java では、HashMap データ構造はキーと値のペアを格納する便利な方法を提供します。ただし、キーに関連付けられた値に基づいてデータにアクセスする必要がある場合は、HashMap を値で並べ替える必要があります。

HashMap を昇順で並べ替える

HashMap を値でソートする 1 つの方法は、Java 8 ストリームを使用することです。次のコード スニペットは、これを昇順で行う方法を示しています。

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class SortHashMapByValues {

    public static void main(String[] args) {
        // Create an unsorted HashMap
        HashMap<Integer, String> unsortedMap = new HashMap<>();
        unsortedMap.put(1, "froyo");
        unsortedMap.put(2, "abby");
        unsortedMap.put(3, "denver");
        unsortedMap.put(4, "frost");
        unsortedMap.put(5, "daisy");

        // Sort the HashMap by values in ascending order
        Map<Integer, String> sortedMapAsc = unsortedMap.entrySet()
                .stream()
                .sorted(Map.Entry.comparingByValue())
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
                        (oldValue, newValue) -> oldValue, LinkedHashMap::new));

        // Key, Value : 2, abby
        // Key, Value : 5, daisy
        // Key, Value : 3, denver
        // Key, Value : 4, frost
        // Key, Value : 1, froyo
        System.out.println(sortedMapAsc);
    }
}
ログイン後にコピー

HashMap を降順で並べ替える

HashMap を値で降順に並べ替えるには、次のようにします。上記のコード スニペットを少し変更します。

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class SortHashMapByValues {

    public static void main(String[] args) {
        // Create an unsorted HashMap
        HashMap<Integer, String> unsortedMap = new HashMap<>();
        unsortedMap.put(1, "froyo");
        unsortedMap.put(2, "abby");
        unsortedMap.put(3, "denver");
        unsortedMap.put(4, "frost");
        unsortedMap.put(5, "daisy");

        // Sort the HashMap by values in descending order
        Map<Integer, String> sortedMapDesc = unsortedMap.entrySet()
                .stream()
                .sorted(Map.Entry.<Integer, String>comparingByValue().reversed())
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
                        (oldValue, newValue) -> oldValue, LinkedHashMap::new));

        // Key, Value : 1, froyo
        // Key, Value : 4, frost
        // Key, Value : 3, denver
        // Key, Value : 5, daisy
        // Key, Value : 2, abby
        System.out.println(sortedMapDesc);
    }
}
ログイン後にコピー

このコードは、並べ替えられた結果を出力します。元のキーを表すキーと降順にソートされた値を含む HashMap。昇順と降順の両方の例では、LinkedHashMap を使用して挿入順序を維持し、キーが並べ替えられた値に適切に関連付けられていることを確認します。

以上がJava HashMap を値によって昇順および降順に並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート