SeouliteLab

[Java/자바] HashMap에서 value로 key 찾는 방법 본문

프로그래밍

[Java/자바] HashMap에서 value로 key 찾는 방법

Seoulite Lab 2024. 3. 11. 10:45

Java에서 HashMap에서 value로 key를 찾는 방법에 대해 알아보겠습니다. HashMap은 key-value 쌍을 저장하는 자료구조이며, 일반적으로 key를 통해 value에 접근합니다. 그러나 때로는 value를 알고 있을 때 이에 해당하는 key를 찾아야 할 때가 있습니다. 다양한 방법을 통해 이를 수행할 수 있습니다.

1. 반복문을 이용하여 검색

HashMap을 반복하면서 각 entry의 value가 목표값과 일치하는지 확인하는 방법입니다. 이 방법은 단순하지만 모든 entry를 검색해야 하므로 성능면에서는 비효율적입니다.

HashMap<Integer, String> map = new HashMap<>();
map.put(1, "apple");
map.put(2, "banana");
map.put(3, "cherry");

String targetValue = "banana";
Integer foundKey = null;

for (Map.Entry<Integer, String> entry : map.entrySet()) {
    if (entry.getValue().equals(targetValue)) {
        foundKey = entry.getKey();
        break;
    }
}

System.out.println("Key for value " + targetValue + ": " + foundKey);

2. Java 8 Stream을 이용하여 검색

Java 8에서는 Stream을 사용하여 간단하게 value에 해당하는 key를 찾을 수 있습니다. 이 방법은 목표값과 일치하는 entry를 찾으면 즉시 검색을 종료합니다.

HashMap<Integer, String> map = new HashMap<>();
map.put(1, "apple");
map.put(2, "banana");
map.put(3, "cherry");

String targetValue = "banana";
Integer foundKey = map.entrySet().stream()
        .filter(entry -> entry.getValue().equals(targetValue))
        .map(Map.Entry::getKey)
        .findFirst()
        .orElse(null);

System.out.println("Key for value " + targetValue + ": " + foundKey);