Rumah > Java > javaTutorial > Bagaimana untuk Mengisih Java HashMap mengikut Nilai dalam Susunan Menaik dan Menurun?

Bagaimana untuk Mengisih Java HashMap mengikut Nilai dalam Susunan Menaik dan Menurun?

Susan Sarandon
Lepaskan: 2024-11-26 17:38:15
asal
606 orang telah melayarinya

How to Sort a Java HashMap by Values in Ascending and Descending Order?

Isih Peta Hash mengikut Nilai

Di Java, struktur data HashMap menyediakan cara yang mudah untuk menyimpan pasangan nilai kunci. Walau bagaimanapun, jika anda perlu mengakses data berdasarkan nilai yang dikaitkan dengan kekunci, menyusun HashMap mengikut nilai adalah perlu.

Isih Peta Hash dalam Susunan Menaik

Satu pendekatan untuk mengisih HashMap mengikut nilai ialah menggunakan aliran Java 8. Coretan kod berikut menunjukkan cara melakukan ini dalam tertib menaik:

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class SortHashMapByValues {

    public static void main(String[] args) {
        // Create an unsorted HashMap
        HashMap<Integer, String> unsortedMap = new HashMap<>();
        unsortedMap.put(1, "froyo");
        unsortedMap.put(2, "abby");
        unsortedMap.put(3, "denver");
        unsortedMap.put(4, "frost");
        unsortedMap.put(5, "daisy");

        // Sort the HashMap by values in ascending order
        Map<Integer, String> sortedMapAsc = unsortedMap.entrySet()
                .stream()
                .sorted(Map.Entry.comparingByValue())
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
                        (oldValue, newValue) -> oldValue, LinkedHashMap::new));

        // Key, Value : 2, abby
        // Key, Value : 5, daisy
        // Key, Value : 3, denver
        // Key, Value : 4, frost
        // Key, Value : 1, froyo
        System.out.println(sortedMapAsc);
    }
}
Salin selepas log masuk

Mengisih Peta Hash dalam Susunan Menurun

Untuk mengisih Peta Hash mengikut nilai dalam tertib menurun, ubah suai sedikit coretan kod di atas:

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class SortHashMapByValues {

    public static void main(String[] args) {
        // Create an unsorted HashMap
        HashMap<Integer, String> unsortedMap = new HashMap<>();
        unsortedMap.put(1, "froyo");
        unsortedMap.put(2, "abby");
        unsortedMap.put(3, "denver");
        unsortedMap.put(4, "frost");
        unsortedMap.put(5, "daisy");

        // Sort the HashMap by values in descending order
        Map<Integer, String> sortedMapDesc = unsortedMap.entrySet()
                .stream()
                .sorted(Map.Entry.<Integer, String>comparingByValue().reversed())
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
                        (oldValue, newValue) -> oldValue, LinkedHashMap::new));

        // Key, Value : 1, froyo
        // Key, Value : 4, frost
        // Key, Value : 3, denver
        // Key, Value : 5, daisy
        // Key, Value : 2, abby
        System.out.println(sortedMapDesc);
    }
}
Salin selepas log masuk

Kod ini akan keluarkan HashMap yang diisih dengan kekunci yang mewakili kunci asal dan nilai yang diisih dalam tertib menurun. Kedua-dua contoh tertib menaik dan menurun menggunakan LinkedHashMap untuk mengekalkan susunan sisipan, memastikan kekunci dikaitkan dengan betul dengan nilai yang diisih.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Java HashMap mengikut Nilai dalam Susunan Menaik dan Menurun?. 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