ホームページ >Java >&#&チュートリアル >Javaでマップの値をキーで並べ替えるにはどうすればよいですか?

Javaでマップの値をキーで並べ替えるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-31 03:30:13301ブラウズ

How to Sort a Map's Values by Key in Java?

Java でのキーによるマップ値の並べ替え

マップ内の値をキーによって並べ替えるには、TreeMap またはカスタム SortedSet の使用を検討してください。コンパレータ。

の使用TreeMap

  • TreeMap は、ソートされた順序でキーを維持する特殊な Map 実装です。
  • キーとして文字列を使用して TreeMap を作成するには、新しい TreeMap.

SortedSet の使用

  • マップが最初から TreeMap ではない場合は、TreeSet を使用してキーの SortedSet を作成できます。
  • これにより、並べ替えられたキーを反復処理できます。 order.

コード例:

import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;

public class MapSortByKey {

    // Using TreeMap
    public static void sortByTreeMap() {
        Map<String, String> map = new TreeMap<>();
        map.put("question1", "1");
        map.put("question9", "1");
        map.put("question2", "4");
        map.put("question5", "2");

        // Iterate through the sorted map
        StringBuilder questionString = new StringBuilder();
        StringBuilder answerString = new StringBuilder();
        for (Map.Entry<String, String> entry : map.entrySet()) {
            questionString.append(entry.getKey() + ",");
            answerString.append(entry.getValue() + ",");
        }

        // Remove the trailing commas
        questionString.setLength(questionString.length() - 1);
        answerString.setLength(answerString.length() - 1);

        System.out.println("Questions: " + questionString);
        System.out.println("Answers: " + answerString);
    }

    // Using SortedSet
    public static void sortBySortedSet() {
        Map<String, String> map = new HashMap<>();
        map.put("question1", "1");
        map.put("question9", "1");
        map.put("question2", "4");
        map.put("question5", "2");

        // Create a sorted set of the keys
        SortedSet<String> keys = new TreeSet<>(map.keySet());

        // Iterate through the sorted keys
        StringBuilder questionString = new StringBuilder();
        StringBuilder answerString = new StringBuilder();
        for (String key : keys) {
            String value = map.get(key);
            questionString.append(key + ",");
            answerString.append(value + ",");
        }

        // Remove the trailing commas
        questionString.setLength(questionString.length() - 1);
        answerString.setLength(answerString.length() - 1);

        System.out.println("Questions: " + questionString);
        System.out.println("Answers: " + answerString);
    }

    public static void main(String[] args) {
        sortByTreeMap();
        sortBySortedSet();
    }
}

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。