1. HashMap이란?
: HashMap은 Map을 구현한다. Key와 value를 묶어 하나의 entry로 저장한다는 특징을 갖는다. 그리고 hashing을 사용하기 때문에 많은양의 데이터를 검색하는데 뛰어난 성능을 보인다.
- Map 인터페이스의 한 종류로 ( "Key", value) 로 이뤄져 있다.
- key 값을 중복이 불가능 하고 value는 중복이 가능. value에 null값도 사용 가능하다.
- 멀티쓰레드에서 동시에 HashMap을 건드려 Key - value값을 사용하면 문제가 될 수 있다. 멀티쓰레드에서는 HashTable을 쓴다
생성자 / 메서드 |
설명 |
HashMap() |
- HashMap 객체를 생성
ex) HashMap<String , Integer> map = new HashMap<String , Integer>();
Map<String, Integer> map = new HashMap<String, integer>(); |
HashMap(int initlalCapacity) |
- 지정된 값을 초기 용량으로 하는 HashMap객체를 생성한다. |
HashMap(int initlalCapacity, float loadFactory) |
- 지정된 값을 초기용량과 load factory의 HashMap 객체를 생성한다. |
HashMap(Map m) |
- 주어진 Map에 저장된 모든 요소를 포함하는 HashMap을 생성한다. |
void clear() |
- HashMap에 저장된 모든 객체를 제거한다.
ex) map.clear(); |
Object clone() |
- 현재 HashMap을 복제하여 반환한다.
ex) newmap = (HashMap)map.clone(); |
boolean containsKey(Object Key) |
- HashMap에 지정된 키(Key)가 포함되어 있는지 알려준다. |
boolean containsValue(Object Value) |
- HashMap에 지정된 값(Value)가 포함되어 있는지 알려준다. |
Set entrySet() |
- HashMap에 저장된 Key - Value갑슬 엔트리(키와 값을 결합)의 형태로 Set에 저장하여 반환
ex) map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
Set set = map.entrySet();
System.out.println("set values are" + set);
(result) set values : [A=1,B=2,C=3] |
Object get(Object Key) |
- 지정된 Key 의 값을 반환한다.
ex) map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
String val = (String)map.get("B");
System.out.println("Value for key B is: " + val);
(result) Value for key B is 2 |
bloolean isEmpty |
- HashMap이 비어있는지 확인한다.
ex) boolean val = map.isEmpty(); |
Set keySet() |
- HashMap에 저장된 모든 키가 저장된 Set을 반환한다.
ex) map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
Set keyset = map.keySet();
System.out.println("Key set values are" + keyset);
(result) Key set values are [A,B,C] |
Object put(Object Key, Object Value) |
- HashMap에 키와 값을 저장.
ex) map.put("A", "aaa");
map.put("B", "bbb");
map.put("C", "ccc"); |
void putAll(Map m) |
- Map에 해당하는 모든 요소를 HashMap에 저장한다. |
Object remove(Object Key) |
- HashMap에서 지정된 키로 지정된 값을 제거한다.
ex) map.remove("key"); |
int size() |
- HashMap에 저장된 요소의 개수를 반환한다. |
Collection values() |
- HashMap에 저장된 모든 값을 컬렉션 형태로 반환한다. |
3. 사용
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
pubilc class HashMapDemo
{
public static void main(String[] args)
{
HashMap<String, Integer> fruitMap = new HashMap();
fruitMap.put("사과", 1000);
fruitMap.put("배", 2000);
fruitMap.put("자두", 3000);
fruitMap.put("수박", 4000);
// get() --> Key에 해당하는 Value를 출력한다.
System.out.println( fruitMap.get("자두") ); // 3000
// values() --> 저장된 모든 값 출력
System.out.println( fruitMap.values() ); // [1000, 2000, 3000, 4000]
// HashMap에 넣은 Key와 Value를 Set에 넣고 iterator에 값으로 Set정보를 담에 준다.
// Interator itr = fruitMap.entrySet().interator(); 와 같다.
Set<Entry<String, Integer>> set = fruitMap.entrySet();
Interator<Entry<String, Integer>> itr = set.interator();
while (itr.hasNext())
{
Map.Entry<String, Integer> e = (Map.Entry<String, Integer>)itr.next();
System.out.println("이름 : " + e.getKey() + ", 가격 : " + e.getValue() + "원");
}
}
결과 :
이름 : 사과, 가격 : 1000원
이름 : 배, 가격 : 2000원
이름 : 자두, 가격 : 3000원
이름 : 수박, 가격 : 4000원
'IT개발 > Java' 카테고리의 다른 글
[Java] 일정 시간을 기다리게 하는 sleep 메소드 사용법 (0) | 2014.04.01 |
---|---|
[Java] Iterator 함수 제대로 알고 사용하기 (13) | 2014.03.28 |
[Java] 자바 예약어 총정리 (1) | 2014.03.27 |
[Java] Static 키워드 바로 알고 사용하자 (15) | 2014.03.25 |
[Java] 해쉬맵(HashMap)에 대하여 심층적으로 알아보자 (0) | 2014.03.21 |