[Java] HashMap의 getOfDefault() : 중복 갯수 확인

w-beom·2020년 4월 8일
1

프로그래머스 문제를 풀던 도중 효율성으로 인해서 합격이 되지 않는 문제가 생겼다.

그래서 다른 사람들의 코드들을 보면서 하나 배운게 있다.

HashMap의 getOfDefault() 이다.

Integer getOrDefault(Object key, Integer defaultValue)

해당 key값이 존재하면 key의 value를 반환하고 존재하지 않으면 기본값을 반환한다.

이 메소드를 이용해서 배열에서 중복되는 값이 몇 개 있는지 확인할 수 있는 효율적인 알고리즘을 작성할 수 있다는걸 알았다.

CODE

import java.util.HashMap;
import java.util.Map;

public class Main {
	public static void main(String[] args) {
	String[] arr= {"aaa","aaa","bbb","ccc","ddd","ccc","eee"};
		
	Map<String, Integer> map = new HashMap<String, Integer>();
	for(String key : arr) {
		map.put(key, map.getOrDefault(key, 0)+1);
	}
	System.out.println(map);
	}
}

출력결과-----------------------------
{aaa=2, ccc=2, bbb=1, eee=1, ddd=1}
profile
습득한 지식과 경험을 나누며 다른 사람들과 문제를 함께 해결해 나가는 과정에서 서로가 성장할 수 있는 기회를 만들고자 노력합니다.

0개의 댓글