Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Isih Nilai Peta Java mengikut Kekuncinya?

Bagaimanakah Saya Boleh Isih Nilai Peta Java mengikut Kekuncinya?

Barbara Streisand
Lepaskan: 2024-12-30 12:15:14
asal
707 orang telah melayarinya

How Can I Sort a Java Map's Values by its Keys?

Isih Nilai Peta mengikut Kunci dalam Java

Memandangkan Peta dengan kekunci dan nilai Rentetan, objektifnya adalah untuk mengisih kekunci dalam tertib menaik. Kekunci yang diisih kemudiannya akan digunakan untuk mencipta dua rentetan: satu mengandungi soalan yang diisih dan satu lagi mengandungi jawapan yang sepadan.

Jawapan Ringkas

Untuk mengisih Peta mengikut kekuncinya, gunakan TreeMap , yang direka khusus untuk tujuan ini. Jika jenis Peta tidak diketahui, kaedah alternatif menggunakan SortedSet dan TreeSet boleh digunakan:

SortedSet<String> keys = new TreeSet<>(map.keySet());
for (String key : keys) {
    String value = map.get(key);
    // Perform desired operations
}
Salin selepas log masuk

Jawapan Lebih Panjang

Secara teknikal, mana-mana kelas yang melaksanakan SortedMap boleh digunakan. Walau bagaimanapun, TreeMap adalah pilihan yang paling lazim. Untuk jenis kunci yang lebih kompleks atau keperluan pengisihan tersuai, gunakan pembina berikut untuk menyediakan Pembanding:

Comparator<Foo> comparator = (Foo o1, Foo o2) -> {
    // Define custom sort logic
};

SortedSet<Foo> keys = new TreeSet<>(comparator);
keys.addAll(map.keySet());
Salin selepas log masuk

Pertimbangan Prestasi:

Perhatikan bahawa TreeMap dan TreeSet mempunyai perbezaan ciri prestasi berbanding HashMap dan HashSet. Operasi carian, yang mengambil masa O(1) dalam HashMap, memerlukan masa O(Log(N)) dalam TreeMap. Apabila saiz peta bertambah, masa carian akan meningkat pada masa yang sama.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Nilai Peta Java mengikut Kekuncinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan