1. 개요

이 사용방법(예제)에서는 Java에서 Map 인터페이스 의 세 가지 메서드인 keySet() , entrySet()values() 에 대해 설명합니다. 이러한 메서드는 각각 키 집합, 키-값 매핑 집합 및 값 모음을 검색하는 데 사용됩니다.

2. 맵 초기화

HashMap, TreeMapLinkedHashMap 과 같은 Map 인터페이스를 구현하는 모든 클래스에서 이러한 메서드를 사용할 수 있지만 여기 에서는 HashMap 을 사용 합니다.

키가 String 유형 이고 값이 Integer 유형인 HashMap 을 만들고 초기화해 보겠습니다 .

Map<String, Integer> map = new HashMap<>();
map.put("one", 1);
map.put("two", 2);

3. keySet() 메서드

keySet() 메서드는 Map 포함된 키 집합 을 반환합니다 . 

keySet() 메서드 Map 에 적용 하고 Set 변수 actualValues 에 저장해 보겠습니다 .

Set<String> actualValues = map.keySet();

이제 반환된 Set 의 크기 가 2 인지 확인하겠습니다 .

assertEquals(2, actualValues.size());

또한 반환된 Set 에 Map 의 키가 포함되어 있음을 알 수 있습니다 .

assertTrue(actualValues.contains("one"));
assertTrue(actualValues.contains("two"));

4. entrySet() 메소드

entrySet()  메서드 는 키-값 매핑 집합을 반환합니다. 이 메서드는 매개 변수를 사용하지 않으며 Map.Entry  의 반환 유형 집합 을 갖습니다.

entrySet() 메서드 Map에 적용해 보겠습니다.

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

보시다시피 actualValuesMap.Entry 객체 의 집합 입니다 .

Map.Entry 는 키와 값을 모두 보유하는 정적 인터페이스입니다. 내부적으로 AbstractMap.SimpleEntryAbstractMap.SimpleImmutableEntry 의 두 가지 구현이 있습니다.

이전과 마찬가지로 반환된 Set 의 크기 가 2인지 확인합니다.

assertEquals(2, actualValues.size());

또한 반환된 Set 에 Map 의 키-값 항목이 포함되어 있음을 알 수 있습니다 .

assertTrue(actualValues.contains(new SimpleEntry<>("one", 1)));
assertTrue(actualValues.contains(new SimpleEntry<>("two", 2)));

여기에서는 테스트를 위해 Map.Entry 인터페이스의 AbstractMap.SimpleEntry  구현을 선택했습니다.

5. values() 메서드

values() 메서드는 Map 에 포함된 값의 컬렉션반환 합니다 . 이 메서드는 매개 변수를 사용하지 않으며 컬렉션 반환 유형을 갖습니다. 

메소드 values()Map 에 적용 하고 컬렉션 변수 actualValues에 저장해 봅시다.

Collection<Integer> actualValues = map.values();

이제 반환된 컬렉션의 크기를 확인하겠습니다.

assertEquals(2, actualValues.size());

또한 반환된 Set 에 Map 값이 포함되어 있음을 알 수 있습니다 .

assertTrue(actualValues.contains(1));
assertTrue(actualValues.contains(2));

6. 결론

이 기사에서는 Map 인터페이스 의 keySet()entrySet()values() 메서드에 대해 설명했습니다.

늘 그렇듯이 전체 소스 코드는 GitHub에서 사용할 수 있습니다 .

Generic footer banner