어제 오늘 내일

[Java] HashMap에서 value로 key 찾기 본문

IT/Java

[Java] HashMap에서 value로 key 찾기

hi.anna 2021. 5. 18. 10:54

 

지난번에는

HashMap에 특정 key가 존재하는지, 특정 value가 존재하는지 확인하는 방법을 알아보았습니다.

[Java] HashMap에 특정 key 존재 여부 확인하기

[Java] HashMap에 특정 value 존재 여부 확인하기

 

이번에는 HashMap에서 특정 value를 가지는 key 목록을 찾는 방법을 소개합니다.

 

 

반복문, map.entrySet()

반복문과 map.entrySet() 메소드를 이용하여

HashMap에서 특정 value를 가지는 key를 찾아낼 수 있습니다.

 

public Set<Map.Entry<K,​V>> entrySet()

map.entrySet() 메소드는

해당 map의  key와 value를 가지는 Set 객체를 리턴합니다.

 

  코드  

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class FindKeyByValue {
    public static void main(String[] args) {

        // HashMap 준비
        Map<Integer, String> map = new HashMap<Integer, String>();
        map.put(1, "Apple");
        map.put(2, "Banana");
        map.put(3, "Apple");

        // value로 key 찾기
        Set<Entry<Integer, String>> entrySet = map.entrySet();
        for (Entry<Integer, String> entry : entrySet) {
            if (entry.getValue().equals("Apple")) {
                System.out.println(entry.getKey());  // 1, 3
            }
        }
    }
}

  결과  

1
3

Set<Entry<Integer, String>> entrySet = map.entrySet();

map.entrySet() 메소드는 Map의 key, value를 포함하는 Entry 객체의 Set을 리턴합니다.

'여기에서 리턴받은 Set객체를 반복문을 통해 순회하면서

value를 체크하고, 특정 value의 key를 찾아서 출력하는 코드입니다.

 

 

 

반응형
Comments