최코딩의 개발
열번 째, Map 메서드 정리 본문
728x90
개요: 필자가 해시문제를 풀면서 헷갈리는 메서드들을 정리해봤다.
1. getOrDefault()
사용방법
getOrDefault(Object key, DefaultValue); |
- key : map의 값을 가져와야하는 기본적인 요소이다.
- DefaultValue: 지정된 키에서 매핑된 값이 없는 경우 초기화값으로 반환되는 기본값이다.
다음은 예시 코드이다
package test0;
import java.util.HashMap;
import java.util.Map;
public class test3 {
public static void main(String[] args) {
String[] num={"1","2","3","1"};
Map<String,Integer> hashMap=new HashMap();
for(String key: num){
hashMap.put(key,hashMap.getOrDefault(key,0)+1);
}
System.out.println(hashMap);
//결과값: {1=2, 2=1, 3=1}
}
}
2. entrySet()
사용방법
for(Map.Entry<String,Integer> entrySet: hashMap.entrySet()) |
- 사용방법은 다음과 같다. map의 내용을 출력시키는 대표적인 메서드 중 하나다.(keyset, iterator)
다음은 예시 코드이다.
package test0;
import java.util.HashMap;
import java.util.Map;
public class test3 {
public static void main(String[] args) {
String[] num={"1","2","3","1"};
Map<String,Integer> hashMap=new HashMap();
for(String key: num){
hashMap.put(key,hashMap.getOrDefault(key,0)+1);
}
for(Map.Entry<String,Integer> entrySet: hashMap.entrySet()){
System.out.println(entrySet.getKey()+":"+entrySet.getValue());
}
/*
결과값:
1:2
2:1
3:1
*/
}
}
3. keySet(), get(key)
사용방법
hashMap.keySet() |
- map의 저장되있는 key들을 모아서 set의 형태로 반환한다.
hashMap.get(key) |
- key 값을 map으로 전달해 해당 key의 value를 찾아서 값을 반환한다.
다음은 예시 코드이다.
package test0;
import java.util.HashMap;
import java.util.Map;
public class test3 {
public static void main(String[] args) {
String[] num = {"1", "2", "3", "1"};
Map<String, Integer> hashMap = new HashMap<>();
for (String key : num) {
hashMap.put(key, hashMap.getOrDefault(key, 0) + 1);
}
System.out.println(hashMap.keySet());
for (String key : hashMap.keySet()) {
System.out.println(key + ":" + hashMap.get(key));
}
/*
결과값:
[1, 2, 3]
1:2
2:1
3:1
*/
}
}
4. values()
사용방법
hashMap.values |
- map의 value 값을 Collection의 형태로 리턴한다.
package test0;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class test3 {
public static void main(String[] args) {
String[] num = {"1", "2", "3", "1"};
Map<String, Integer> hashMap = new HashMap<>();
for (String key : num) {
hashMap.put(key, hashMap.getOrDefault(key, 0) + 1);
}
System.out.println(hashMap.values());
for (Integer value : hashMap.values()) {
System.out.println(value);
}
/*
결과값:
[2, 1, 1]
2
1
1
*/
}
}
5. forEach 구문
람다식을 이용해서 푼 코드이다.
package test0;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class test3 {
public static void main(String[] args) {
String[] num = {"1", "2", "3", "1"};
Map<String, Integer> hashMap = new HashMap<>();
for (String key : num) {
hashMap.put(key, hashMap.getOrDefault(key, 0) + 1);
}
hashMap.forEach((key, value) ->
System.out.println(key + ":" + value)
);
/*
결과값:
1:2
2:1
3:1
*/
}
}
느낀점: 헷갈렸던 Map의 메서드들을 정리하니깐 한결 가벼워졌다.
728x90
'JAVA' 카테고리의 다른 글
열 두번째, Priority Queue(우선순위 큐) (0) | 2023.03.02 |
---|---|
열 한번째, List 인터페이스 정리 (2) | 2023.03.02 |
아홉번 째, split() 이란? (0) | 2023.01.25 |
여덟번 째, substring() 이란? (0) | 2023.01.10 |
일곱번 째, 예외처리란? (0) | 2022.12.19 |