

Collection
Map : interface
HashMap : class == 사전 (dict)
key : value 쌍
tree 구조
index로 접근하는 것이 아님!! - key로 접근함
key는 중복을 허용하지 않음 (중복으로 입력하면 덮어쓰기 됨)
web에서는 json
TreeMap : HashMap + Sorting
1. 해시맵 선언 (구조)
HashMap<Key 타입, Value 타입> 변수명 = new HashMap<>();
보통 Map으로 더 많이 받는다.
// HashMap<Integer, String> hMap = new HashMap<>();
Map<Integer, String> hMap = new HashMap<>();
2. 해시맵에 요소 추가 - put( key, value )
hMap.put(111, "백십일");
hMap.put(222, "이백이십이");
hMap.put(333, "삽백삼십삼");
3. 해시맵의 크기 반환 - size()
System.out.println(hMap.size());
4. Key값을 인덱스로 활용하여 Value를 취득 - get( key값 )
★ HashMap은 중복 key를 허용하지 않는다.
- get 메소드는 value값을 리턴한다.
String value = hMap.get(333);
System.out.println(value);
5. HashMap의 모든 요소를 출력 - Iterator와 get을 활용 ☆
- Iterator는 일종의 포인터 역할을 한다
- Iterator < Key값의 자료타입 > (이터레이터)변수명 = (해시맵)변수명.keySet().iterator();
- it.hasNext()를 한 번 사용하고 나면, 다시 쓰려면 끝을 가리키고 있는 포인터를 초기화 시켜줘야 한다. (새로 대입)
Iterator<Integer> it = hMap.keySet().iterator();
while (it.hasNext()) {
Integer _key = it.next();
String _value = hMap.get(_key);
System.out.println("key = " + _key + "\tvalue = " + _value);
}
6. 삭제 - remove( key값 )
- 삭제된 key의 value값을 리턴해준다.
String remove_value = hMap.remove(222);
System.out.println("삭제된 값 = " + remove_value);
7. 검색 - containsKey( Key값) 과 get()을 활용
- containsKey( k )는 boolean을 리턴한다.
// 검색
// boolean b = hMap.containsKey(333);
if (hMap.containsKey(333)) {
String val = hMap.get(333);
System.out.println(val);
}
8. 수정 - replace( Key값, 새로운 Value값 )
- 키 값을 수정할 수는 없다!
// 수정 -- 키 값은 수정 안되고 value만
String str = "300 + 30 + 3";
hMap.replace(333, str);
9. 해쉬맵의 정렬 - 트리맵을 사용한다.
[메모]
- HashMap의 확장판 == TreeMap
- (ArrayList의 확장판 == LinkedList)
- HashMap + 정렬 기능 이라서 더 무겁다 ( 정렬할때만 쓰고, 잘 안 씀)
// Sorting
TreeMap<String, String> tMap = new TreeMap<>( fruitMap );
// 오름차순 (자동) -- keySet()
Iterator<String> it1 = tMap.keySet().iterator();
// 내림차순 (자동) -- descendingKeySet()
Iterator<String> it1 = tMap.descendingKeySet().iterator();
// 출력
while (it1.hasNext()) {
String k = it1.next();
String v = tMap.get(k);
System.out.println("key = " + k + "\tvalue = " + v);
}
'Java > Data Structures' 카테고리의 다른 글
| ArrayList (+ Iterator , Comparator) [Java Collection 구현하기] (1) | 2025.01.21 |
|---|---|
| Linked List (+ Node, Iterator ) [Java Collection 구현하기] (1) | 2025.01.16 |
| [자료구조] Queue (큐) - 배열로 구현 (2) | 2025.01.14 |
| [자료구조] Stack (스택) - 배열로 구현 (0) | 2025.01.14 |
| [Java] ArrayList<>() - 컬렉션 자료형, List, CRUD (0) | 2025.01.10 |