상세 컨텐츠

본문 제목

[JAVA] HashMap 사용법 (EntrySey, KeySet)

Spring/JAVA

by Chan.94 2021. 11. 1. 09:14

본문

반응형

HashMap

HashMap은 Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있습니다. Map은 Key와 Value로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조이다. 여기서 Key와 Value는 모두 객체로 이루어 저 있다.

Key와 Value는 한 쌍으로 Key로 식별하고 Value에 사용할 값을 넣는 식이다

주요 메소드

메소드 설명
Map.put(key, value); Map 안에 값 넣기
Map.get(key); Map 안의 값 가져오기
Map.size(); Map 크기 확인
Map.replace(key, value); Map 안의 내용 변경하기
Map.containsKey(key);
Map.containsValue(value);
Map 안에 특정 Key, Value 들었는지 확인
Map.isEmpty(); Map의 크기가 0인지 확인
Map.remove(key); Map 안의 내용 삭제
Map.getOrDefault(key, default); Key가 있으면 Value를 가져오고 없으면 default값 가져오기

ExampleCode1

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

public class Main {

	public static void main(String[] args) {
		Map<String,Integer> map=new HashMap();
		map.put("A", 1000);
		map.put("B", 2000);
		map.put("C", 3000);
		map.put("C", 4000);
		System.out.println(map);
		System.out.println(map.get("A"));
		System.out.println(map.get("B"));
		System.out.println(map.get("C"));
	}

}

Output

{A=1000, B=2000, C=4000}
1000
2000
4000

Map 자료구조의 특성상 Key는 유일하기에 C를 두 번 put해도 마지막 넣은 Value로 업데이트가 된다.

 

 


ExampleCode2

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

public class Main{
	public static void main(String[] args) {
		Map<String,Integer> map=new HashMap();
		map.put("A", 1000);
		map.put("B", 2000);
		map.put("C", 3000);
		if(!map.containsKey("C")) {
			map.put("C", 4000);
		}
		System.out.println(map);
		System.out.println(map.get("A"));
		System.out.println(map.get("B"));
		System.out.println(map.get("C"));
	}

}

Output

{A=1000, B=2000, C=3000}
1000
2000
3000

containsKey 메소드로 Map에 해당 Key의 여부를 확인한 후 값을 세팅하였다.


HashMap 순회하기 (entrySet, keySet)

Map 전체를 순회하기 위해서는 entrySet(), keySet() 메소드를 사용하면 되는데 entrySet() 메서드는 key와 value의 값이 모두 필요한 경우 사용하고, keySet() 메서드는 key의 값만 필요한 경우 사용합니다.

 

 

entrySet() key와 value의 값이 모두 필요한 경우 사용
keySet()  key의 값만 필요한 경우 사용
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

public class Main {

	public static void main(String[] args) {
		Map<String,Integer> map=new HashMap();
		map.put("A", 1000);
		map.put("B", 2000);
		map.put("C", 3000);
		if(!map.containsKey("C")) {
			map.put("C", 4000);
		}
		
		// entrySet
		System.out.println("@@@@@entrySet()@@@@@");
		for (Entry<String, Integer> entry : map.entrySet()) {
			System.out.println("[key]:" + entry.getKey() + ", [value]:" + entry.getValue());
		}
		
		// keySet
		System.out.println("@@@@@keySet()@@@@@");
		for (String key : map.keySet()) {
			Integer value = map.get(key);
		    System.out.println("[key]:" + key + ", [value]:" + value);
		}    
	}

}

output

@@@@@entrySet()@@@@@
[key]:A, [value]:1000
[key]:B, [value]:2000
[key]:C, [value]:3000
@@@@@keySet()@@@@@
[key]:A, [value]:1000
[key]:B, [value]:2000
[key]:C, [value]:3000

entrySet()

Map에 저장되어있는 Entry객체들을 반환한다. Entry객체는 키(Key)와 값(Value)의 쌍(Pair)을 저장하는 객체로 getKey()와 getValue() 메소드로 각각의 값을 가지고 올 수 있다.

 

keySet()

Map에 저장되어있는 키(Key)들을 반환한다. get()메소드로 키(Key)에 대응되는 값(Value)를 가지고 올 수 있다.

 


[JAVA] Set 사용법

[JAVA] SortedMap - TreeMap 사용법

 

반응형

관련글 더보기

댓글 영역

>