Rumah > Java > javaTutorial > Bagaimana untuk Mendapatkan Kunci daripada Nilai dalam Java HashMap?

Bagaimana untuk Mendapatkan Kunci daripada Nilai dalam Java HashMap?

Barbara Streisand
Lepaskan: 2024-12-19 08:59:09
asal
394 orang telah melayarinya

How to Retrieve Keys from Values in a Java HashMap?

Mendapatkan Kekunci daripada Nilai dalam Java Hashmaps

Dalam Java HashMap, mendapatkan semula kunci yang sepadan dengan nilai tertentu boleh berguna dalam pelbagai senario . Berikut ialah penerokaan menyeluruh tentang cara untuk menyelesaikan tugasan ini:

Pendekatan Berasaskan Gelung:

Kaedah tradisional untuk mendapatkan kunci daripada nilai adalah dengan mengulang melalui HashMap entri. Untuk setiap entri, bandingkan nilai dengan yang dikehendaki. Jika padanan ditemui, kunci yang sepadan boleh diambil.

public static <T, E> Set<T> getKeysByValue(Map<T, E> map, E value) {
    Set<T> keys = new HashSet<>();
    for (Entry<T, E> entry : map.entrySet()) {
        if (Objects.equals(value, entry.getValue())) {
            keys.add(entry.getKey());
        }
    }
    return keys;
}
Salin selepas log masuk

Pendapatan Kunci untuk Pemetaan Satu-dengan-Satu:

Dalam senario di mana setiap nilai dipetakan kepada hanya satu kunci, pendekatan berasaskan gelung boleh dipermudahkan untuk mengembalikan yang pertama dipadankan kunci.

public static <T, E> T getKeyByValue(Map<T, E> map, E value) {
    for (Entry<T, E> entry : map.entrySet()) {
        if (Objects.equals(value, entry.getValue())) {
            return entry.getKey();
        }
    }
    return null;
}
Salin selepas log masuk

Pendekatan Strim Java 8:

Untuk pengguna Java 8 dan ke atas, operasi strim boleh menyediakan cara ringkas untuk mendapatkan kunci.

public static <T, E> Set<T> getKeysByValue(Map<T, E> map, E value) {
    return map.entrySet()
              .stream()
              .filter(entry -> Objects.equals(entry.getValue(), value))
              .map(Map.Entry::getKey)
              .collect(Collectors.toSet());
}
Salin selepas log masuk

Guava's BiMap:

Sebagai alternatif, bagi pengguna pustaka Guava, struktur data BiMap boleh sangat berguna. Ia menyediakan pemetaan dwiarah antara kunci dan nilai, membolehkan mendapatkan semula kedua-dua kunci dan nilai yang cekap.

BiMap<Token, Character> tokenToChar = 
    ImmutableBiMap.of(Token.LEFT_BRACKET, '[', Token.LEFT_PARENTHESIS, '(');
Token token = tokenToChar.inverse().get('(');
Character c = tokenToChar.get(token);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kunci daripada Nilai dalam Java HashMap?. 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