Rumah >Java >javaTutorial >Bagaimana untuk Mengisih Nilai Peta mengikut Kekunci dalam Java?

Bagaimana untuk Mengisih Nilai Peta mengikut Kekunci dalam Java?

Barbara Streisand
Barbara Streisandasal
2024-12-31 03:30:13299semak imbas

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

Isih Nilai Peta mengikut Kunci dalam Java

Untuk mengisih nilai dalam Peta mengikut kekunci, pertimbangkan untuk menggunakan sama ada TreeMap atau SortedSet tersuai dengan seorang Pembanding.

Menggunakan TreeMap

  • TreeMap ialah pelaksanaan Peta khusus yang mengekalkan kuncinya dalam susunan yang disusun.
  • Untuk mencipta TreeMap dengan rentetan sebagai kekunci, hanya buat seketika TreeMap.

Menggunakan SortedSet

  • Jika Peta pada mulanya bukan TreeMap, anda boleh mencipta SortedSet bagi kekunci menggunakan TreeSet.
  • Ini membolehkan anda mengulangi kekunci dalam disusun pesanan.

Kod Contoh:

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();
    }
}

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Nilai Peta mengikut Kekunci dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn