- 키와 값으로 구성된 엔트리 객체를 저장하는 자료구조이다.
- key의 중복된 값을 허용하지 않는다.
- NULL 삽입이 가능하다.
- 동기화가 되지 않는다. 순서가 없다.
선언
import java.util.HashMap;
public class HashMapDemo {
public static void main(String[] arg) {
HashMap<String, String> map1 = new HashMap<>();
HashMap<String, String> map2 = new HashMap<>(otherMap); // 다른 컬렉션으로부터 초기화
HashMap<String, String> map3 = new HashMap<>(0); // 초기 용량 설정
HashMap<String, String> map4 = new HashMap<>(10, 0, 8f); // 초기 용량 및 load factor 설정
}
}
값 추가
import java.util.HashMap;
public class HashMapDemo {
public static void main(String[] arg) {
HashMap<String, String> map = new HashMap<>(); // new에서 타입 파라미터 생략 가능
map.put(1, "사과"); // 값 추가
map.put(2, "바나나");
map.put(3, "포도");
}
}
값 제거
import java.util.HashMap;
public class HashMapDemo {
public static void main(String[] arg) {
HashMap<String, String> map = new HashMap<>();{{ // 초기값 지정
map.put(1, "사과"); // 값 추가
map.put(2, "바나나");
map.put(3, "포도");
}};
map.remove(1); // key값 1 제거
map.clear(); // 모든 값 제거
}
}
값 조회
import java.util.HashMap;
public class HashMapDemo {
public static void main(String[] arg) {
HashMap<String, String> map = new HashMap<>(){{ // 초기값 지정
map.put(1, "사과");
map.put(2, "바나나");
map.put(3, "포도");
}};
System.out.println(map); // 전체 출력 : {1=사과, 2=바나나, 3=포도}
System.out.println(map.get(1)); // key값 1의 value얻기 : 사과
// entrySet() 활용
for (Entry<Integer, String> entry: map.entrySet()) {
System.out.println("[Key]:" + entry.getKey() + " [Value]:" + entry.getValue());
}
//[Key]:1 [Value]:사과
//[Key]:2 [Value]:바나나
//[Key]:3 [Value]:포도
//KeySet() 활용
for(Integer i: map.keySet()) { // 저장된 key값 확인
System.out.println("[Key]:" + i + " [Value]:" + map.get(i));
}
//[Key]:1 [Value]:사과
//[Key]:2 [Value]:바나나
//[Key]:3 [Value]:포도
}
}
'자료구조' 카테고리의 다른 글
[자료구조] TreeMap (0) | 2023.11.10 |
---|---|
[자료구조] HashTable (0) | 2023.11.09 |
[자료구조] TreeSet (0) | 2023.11.07 |
[자료구조] Hash Set (0) | 2023.11.07 |
[자료구조] Vector (0) | 2023.11.06 |