Rumah > Java > javaTutorial > Bagaimanakah saya boleh menyusun HashMap mengikut Nilainya di Jawa?

Bagaimanakah saya boleh menyusun HashMap mengikut Nilainya di Jawa?

Patricia Arquette
Lepaskan: 2024-11-27 14:56:12
asal
679 orang telah melayarinya

How Can I Sort a HashMap by its Values in Java?

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());
        }
    }
}
Salin selepas log masuk

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());
        }
    }
}
Salin selepas log masuk

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!

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