본문 바로가기

미역/자바

Map.Entry

 Map의 static nested class로 Map을 다룰 때 유용하다. 

 (key, value)로 하나의 쌍을 이루는 콜렉션이다.

 

 1. Map객체에서 Entry 가져오기. 
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("올해 나이", 28);
map.put("현재 재산", 30000);
for(Map.Entry<String, Integer> e : map.entrySet()){
	System.out.printf(e.getKey()+": "+e.getValue());
}

/* 출력
올해 나이: 28
현재 재산: 30000
*/

 그리고 .entrySet()으로 (key, value)의 mappings이 반환됐기 때문에 Entry를 변경하면 Map도 변경된다.

for(Map.Entry<String, Integer> e : map.entrySet()){
	if(e.getKey().equals("현재 재산")) e.setValue(29000);
}

System.out.printf(map.get("올해 재산"));

/* 출력
29000
*/

 

 2. Entry객체 생성해서 사용하기.

 tuple처럼 쌍의 value를 가진 콜렉션으로 사용할 수 있다. 다만 Map.Entry는 Interface이기 때문에 구현클래스(AbstractMap.SimpleEntry)가 필요하다. 

List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>();
//다음처럼 Entry를 객체생성하여 tuple처럼 사용할 수 있다.
list.add(new AbstractMap.SimpleEntry("올해 나이", 28));

 

 

 

 

% 출처 : https://surhommejk.tistory.com/217

'미역 > 자바' 카테고리의 다른 글

[파이썬] 소수 구하기  (0) 2022.04.22
엑셀 시트 읽어오기  (0) 2022.04.22
Optional에 대하여  (0) 2021.12.16
StringBuilder  (0) 2021.12.01
그룹 합의 차이가 최소인 두 그룹으로 나누기  (0) 2021.11.15