Rumah >Java >javaTutorial >Bagaimana untuk Mengisih HashMap dengan Nilai ArrayList di Java?

Bagaimana untuk Mengisih HashMap dengan Nilai ArrayList di Java?

DDD
DDDasal
2024-11-28 00:26:11104semak imbas

How to Sort a HashMap with ArrayList Values in Java?

Cara Isih Peta Hash dalam Java

HashMap yang disediakan ialah pemetaan antara kunci dan ArrayLists. Untuk mengisih struktur ini, kami mempunyai dua pilihan: menggunakan TreeMap atau menulis kod tersuai untuk mengisih mengikut nilai ArrayList.

Pilihan 1: Menggunakan TreeMap

Jika perlu untuk antara muka Peta tidak penting, pertimbangkan untuk menggunakan TreeMap sebaliknya. TreeMap mengekalkan susunan semula jadi antara kuncinya, menyediakan akses diisih kepada pasangan nilai kunci.

Pilihan 2: Isih Tersuai mengikut Nilai ArrayList

Untuk mengisih Peta Hash berdasarkan Nilai ArrayList, anda boleh menggunakan kod berikut:

// HashMap to be sorted
Map<String, ArrayList<Integer>> unsortedMap = new HashMap<>();

// Create a list to store the sorted values
List<Integer> sortedValues = new ArrayList<>();

// Iterate over the HashMap values and extract the ArrayLists
for (Map.Entry<String, ArrayList<Integer>> entry : unsortedMap.entrySet()) {
    sortedValues.addAll(entry.getValue());
}

// Sort the values in ascending order
Collections.sort(sortedValues);

// Create a new HashMap with the sorted values
Map<String, ArrayList<Integer>> sortedMap = new HashMap<>();
for (Map.Entry<String, ArrayList<Integer>> entry : unsortedMap.entrySet()) {
    sortedMap.put(entry.getKey(), new ArrayList<>( // Sorted list
        sortedValues.subList(0, entry.getValue().size())));
    sortedValues.subList(0, entry.getValue().size()).clear();
}

Atas ialah kandungan terperinci Bagaimana untuk Mengisih HashMap dengan Nilai ArrayList di 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