본문 바로가기

PROGRAMMING/JAVA

[JAVA] Map : getOrDefault

dvpdvp.tistory.com/51

 

[프로그래머스] 완주하지 못한 선수 JAVA

백준 알고리즘 강의 순서대로 풀다가 지루해서 프로그래머스로 넘어가 봤다. programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여

dvpdvp.tistory.com

이 알고리즘을 풀다 알게 된 메소드

 

이 메소드를 활용하면

 

for(int i=0; i<participant.length; i++){
  if(partMap.containsKey(participant[i])){
  	partMap.put(participant[i], partMap.get(participant[i])+1);
  }else{
  	partMap.put(participant[i], 1);
  }
}

이 for loop를 

 

for(int i=0; i<participant.length; i++){
	partMap.put(participant[i], partMap.getOrDefault(participant[i], 0)+1);
}

이렇게 쓸 수 있다.

 

로직이 

participant[i]라는 key를 가지고 있으면

키로 value를 가져와서 +1 을 해주고 키값이 존재하지 않으면 1로 새롭게 put하는 방식인데,

getOrDefualt 메소드를 사용하면 key값 체크할 것 없이 default값을 0으로 설정해서 map에 없으면 0을 return 하여 1을 더한 뒤 put