Map
Map 이란?
•
Key - Value 의 한 쌍으로 데이터를 저장하는 인터페이스
•
Key 를 통해서 Value 를 얻는다.
Map 의 종류
1.
HashMap : 일반적으로 많이 사용하는 Map 자료구조
2.
HashTable : HashMap과 동일한 특징을 갖지만, Thread-Safe 하여 동기화를 지원한다.
3.
LinkedHashMap : 들어온 순서대로 순서를 갖는 Map 자료구조
4.
TreeMap : 이진트리로 구성되어 있고, TreeSet 과 같이 정렬하여 데이터를 저장한다. (오래걸림)
Map의 기능
1. 선언 방법
HashMap<String,String> map1 = new HashMap<String,String>();//HashMap생성
HashMap<String,String> map2 = new HashMap<>();//new에서 타입 파라미터 생략가능
HashMap<String,String> map3 = new HashMap<>(map1);//map1의 모든 값을 가진 HashMap생성
HashMap<String,String> map4 = new HashMap<>(10);//초기 용량(capacity)지정
HashMap<String,String> map5 = new HashMap<>(10, 0.7f);//초기 capacity,load factor지정
HashMap<String,String> map6 = new HashMap<String,String>(){{//초기값 지정
put("a","b");
}};
Java
복사
HashMap 은 저장공간보다 값이 추가로 들어오면 저장공간을 약 두 배로 늘린다.
2. put() : 값 추가
put(key, value) 형태로 값을 추가한다.
HashMap<Integer,String> map = new HashMap<>();//new에서 타입 파라미터 생략가능
map.put(1,"사과"); //값 추가
map.put(2,"바나나");
map.put(3,"포도");
Java
복사
3. remove() : 값 삭제
key 값으로만 요소를 삭제할 수 있다.
map.remove(1); //key값 1 제거
map.clear(); //모든 값 제거
Java
복사
4. get() : 값 출력
key 값을 입력해 value 값을 얻는다.
System.out.println(map.get(1));
Java
복사
사과
Java
복사
5. entrySet() : key와 value 추출
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "A");
map.put(2, "B");
map.put(3, "C");
for (Entry<Integer, String> entrySet : map.entrySet()) {
System.out.println(entrySet.getKey() + " : " + entrySet.getValue());
}
// 결과
// 1: A
// 2: B
// 3: C
Java
복사