Map의 유용한 함수 두가지 getOrDefault, putIfAbsent


이직을 준비하면서 알게된 유용한 함수 두 개를 기록으로 남깁니다.
getOrDefault 의 경우는 프로그래머스에서 알고리즘을 풀면서 가끔씩 써본 기억이 있는데
바로바로 생각이 나지 않는걸 보니 습관이 덜 된 것 같다
담당 시스템 내에서 해당 함수들을 이용하여 리펙토링 할만한 곳들을 찾아서 학습을 해봐야겠다

getOrDefault(Object key, V defaultValue)

map에 key가 없을 경우 defaultValue를 기본 값으로 추가 합니다.

Parameters

  • key - 관련 값이 반환되는 키
  • defaultValue - 키의 기본 매핑

Returns

  • 지정된 키가 매핑되는 값, 또는 이 맵에 키에 대한 매핑이없는 경우
Map<String, Integer> map = new HashMap<String, Integer>();
		
String[] fruitArr = {"포도", "사과", "사과", "배"};

for(String fruit : fruitArr) {
	map.put(fruit, map.getOrDefault(fruit,0)+1 ); // fruit의 개수를 저장
}

System.out.println(map.toString());
[실행 결과]
{=1, 포도=1, 사과=2}

putIfAbsent(String key, V value)

key 값이 없다면 입력 된 key와 value 를 입력하고, 해당 key가 존재하면 입력 되있는 값을 반환합니다.

Parameters

  • key - 지정된 값이 연관 될 키
  • value - 지정된 키와 연관 될 값

Returns

  • 지정된 키와 관련된 이전 값 또는 키에 대한 매핑이없는 경우 null. (null 반환은 구현이 null 값을 지원하는 경우 맵이 이전에 키와 연결된 null을 나타낼 수도 있습니다.)
Map<String, Integer> map = new HashMap<String, Integer>();
		
String[] fruitArr = {"포도", "사과", "사과", "배"};
map.put("포도",100); // 값 미리 셋팅

for(String fruit : fruitArr) {
	map.putIfAbsent(fruit, 1);
	
}

System.out.println(map.toString());
[실행 결과]
{=1, 포도=100, 사과=1}

태그:

카테고리:

업데이트:

댓글남기기