Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menyusun HashMap di Java Berdasarkan Nilai atau Kuncinya?

Bagaimanakah Saya Boleh Menyusun HashMap di Java Berdasarkan Nilai atau Kuncinya?

DDD
DDDasal
2024-12-03 09:14:10502semak imbas

How Can I Sort a HashMap in Java Based on Its Values or Keys?

Mengisih HashMap dalam Java

Di Java, tidak mungkin untuk mengisih HashMap secara langsung kerana ia mengekalkan struktur dalaman yang mengoptimumkan akses kepada pasangan nilai kunci berdasarkan kod cincang. Walau bagaimanapun, terdapat teknik untuk mencapai pengisihan berdasarkan nilai dalam HashMap.

Isih dengan membandingkan nilai

Satu pendekatan ialah menukar nilai HashMap ke dalam senarai dan mengisih senarai berdasarkan perbandingan yang dikehendaki. Kaedah ini membenarkan kriteria pengisihan yang fleksibel kerana pembanding tersuai boleh digunakan. Contohnya, untuk mengisih HashMap dengan nilai adalah objek Person berdasarkan umur mereka:

Map<String, Person> people = new HashMap<>();
...

// Convert HashMap values to a list
List<Person> peopleByAge = new ArrayList<>(people.values());

// Sort the list using a comparator
Collections.sort(peopleByAge, Comparator.comparing(Person::getAge));

// Print sorted results
for (Person p : peopleByAge) {
    System.out.println(p.getName() + "\t" + p.getAge());
}

Menggunakan TreeMap

Jika kriteria pengisihan tidak khusus untuk nilai melainkan susunan kekunci yang dimasukkan, TreeMap boleh digunakan dan bukannya HashMap. TreeMap mengekalkan koleksi kunci yang disusun secara semula jadi, jadi elemen diambil dalam tertib menaik secara lalai. Untuk melaksanakan penyelesaian ini, gantikan HashMap dalam coretan kod di atas dengan TreeMap.

Pertimbangan

Bergantung pada kes penggunaan, pilihan antara mengisih nilai HashMap atau menggunakan TreeMap mungkin berbeza-beza. Jika pengisihan dengan membandingkan nilai diperlukan, pendekatan pertama adalah lebih sesuai. Jika mengisih mengikut kekunci dalam tertib menaik sudah mencukupi, TreeMap ialah pilihan yang lebih mudah dan cekap.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun HashMap di Java Berdasarkan Nilai atau Kuncinya?. 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