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