Mengisih HashMap mengikut Nilai
Mengisih HashMap mengikut nilainya boleh menjadi operasi yang berguna dalam pelbagai senario pengaturcaraan. Untuk melaksanakan tugas ini dengan berkesan, kami boleh memanfaatkan ciri terbina dalam Java dan melaksanakan logik pengisihan tersuai.
Menggunakan Java Lambdas dan Streams:
Menggunakan ungkapan lambda Java 8 dan streams menyediakan pendekatan ringkas dan moden untuk menyusun HashMap. Coretan kod berikut menggambarkan teknik ini:
import java.util.*; import java.util.stream.Collectors; public class HashMapSort { public static void main(String[] args) { HashMap<Integer, String> map = new HashMap<>(); map.put(1, "froyo"); map.put(2, "abby"); map.put(3, "denver"); map.put(4, "frost"); map.put(5, "daisy"); // Sort the HashMap by values in ascending order Map<Integer, String> sortedMapAsc = map.entrySet() .stream() .sorted(Comparator.comparing(Map.Entry::getValue)) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a, b) -> b, LinkedHashMap::new)); // Print the sorted map for (Map.Entry<Integer, String> entry : sortedMapAsc.entrySet()) { System.out.println(entry.getKey() + "," + entry.getValue()); } } }
Isih Tersuai:
Sebagai alternatif, kami boleh melaksanakan algoritma isihan tersuai menggunakan Pembanding. Pendekatan ini memberi kami lebih fleksibiliti dan kawalan ke atas proses pengisihan:
import java.util.*; public class HashMapSort { public static void main(String[] args) { HashMap<Integer, String> map = new HashMap<>(); map.put(1, "froyo"); map.put(2, "abby"); map.put(3, "denver"); map.put(4, "frost"); map.put(5, "daisy"); // Define a custom comparator to sort by values Comparator<Map.Entry<Integer, String>> comparator = new Comparator<>() { @Override public int compare(Map.Entry<Integer, String> o1, Map.Entry<Integer, String> o2) { return o1.getValue().compareTo(o2.getValue()); } }; // Sort the HashMap by values in ascending order List<Map.Entry<Integer, String>> sortedList = new ArrayList<>(map.entrySet()); sortedList.sort(comparator); // Print the sorted map for (Map.Entry<Integer, String> entry : sortedList) { System.out.println(entry.getKey() + "," + entry.getValue()); } } }
Kesimpulannya, pengisihan HashMap mengikut nilainya boleh dicapai menggunakan pelbagai teknik, termasuk lambdas dan strim Java atau pelaksanaan pembanding tersuai. Pilihan pendekatan bergantung pada keperluan khusus dan konteks aplikasi.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menyusun HashMap mengikut Nilainya di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!