Rumah > Java > javaTutorial > Bagaimana untuk Mendapatkan Kunci dari Nilai HashMap di Java?

Bagaimana untuk Mendapatkan Kunci dari Nilai HashMap di Java?

Barbara Streisand
Lepaskan: 2024-12-14 08:52:11
asal
272 orang telah melayarinya

How to Retrieve Keys from HashMap Values in Java?

Mendapatkan Kekunci daripada Nilai HashMap

Di Jawa, apabila bekerja dengan Hashmaps, mungkin timbul situasi di mana anda mempunyai nilai dan ingin mendapatkan kunci yang sepadan. Untuk mencapai matlamat ini, beberapa kaedah tersedia.

Menggelung Melalui Entri

Pendekatan paling mudah melibatkan lelaran ke atas semua entri dalam HashMap:

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

Memulangkan Kunci Padanan Pertama

Jika anda mempunyai pemetaan satu sama satu, anda boleh mengembalikan kunci padanan pertama:

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

Menggunakan Java 8 Stream

Untuk pengguna Java 8, anda boleh menggunakan strim untuk kod yang lebih ringkas:

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

Jika anda lebih suka menggunakan Jambu Batu, pertimbangkan untuk menggunakan BiMapnya untuk pemetaan dua arah:

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 dari Nilai HashMap di Java?. 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