-
Java - Map getOrDefault란?Java/JAVA 2023. 10. 16. 14:21반응형
getOrDefault
찾는 Key의 값이 존재한다면 해당 Value를 반환, Key가 존재하지 않는다면 기본값을 반환
getOrDefault
@Override public V getOrDefault(Object key, V defaultValue) { Node<K,V> e; return (e = getNode(hash(key), key)) == null ? defaultValue : e.value; }
예시를 통해 알아보자
import java.util.HashMap; public class Test { public static void main(String[] args) { String[] test = {"A", "B", "C", "D", "A"}; HashMap<String, Integer> map = new HashMap(); for(String key : test) { map.put(key, map.getOrDefault(key, 0)+1); System.out.println("Result ===> " + map); } } }
아주 간단하다. test라는 배열이 있고 HashMap을 생성한 상태이다.
for문을 돌면서 key값이 존재한다면 해당 Value를 반환, 존재하지 않는다면 Default 값이 0을 반환하도록 설정하였다.
Key Value A 1 맨처음 값이 A인데 A는 map의 key값에 존재하지 않기 때문에 map.getOrDefault(key, 0) => default값 0 반환
map.put(A, 0+1);이 되어 위의 표와같은 형태가 완성된다.
나머지 B,C,D도 동일하게 진행되고 마지막으로 A값이 다시 나온다.
Key Value A 1 B 1 C 1 D 1 map.getOrDefault(key, 0) 여기서는 key값 A가 map에 존재함으로 해당 Key값의 Value를 반환한다.
map.put(A, 1+1);이 되어 아래와같은 표가 최종 값이 된다.
Key Value A 2 B 1 C 1 D 1
아래의 글을 이를 활용한 알고리즘 문제이다.
https://jay-cheol.tistory.com/211
JAVA 알고리즘 문제 - 학급회장(Hash Map)
학급회장(Hash Map) 설명 학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다. 투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여져 있으며 선생님은 그 기호를
jay-cheol.tistory.com
반응형'Java > JAVA' 카테고리의 다른 글
TransactionAspectSupport, PlatformTransactionManager , Rollback (0) 2024.09.13 JAVA - 모든 HTML태그 제거 (정규식) (0) 2024.09.12 Java - txt파일 줄바꿈기준 출력하기 (0) 2023.10.12 JAVA - 읽어온파일(file) split하기 (0) 2023.10.12 JAVA - txt파일불러오기,읽어오기,출력하기 (0) 2023.10.12