본문 바로가기

Collection & Generic/Hashmap

HashMap

HashMap이란?
: HashMap은 Map을 구현한다. Key와 value를 묶어 하나의 entry로 저장한다는 특징을 갖는다. 그리고 hashing을 사용하기 때문에 많은양의 데이터를 검색하는데 뛰어난 성능을 보인다.



HashMap<Integer, String> hMap = new HashMap<Integer, String>(); 
// 키값 , 벨류값 
// 키값은 못바꿈, 벨류값만 수정가능

// 추가 
// .put(key,value)
hMap.put(111, "백십일"); 
hMap.put(222, "이백이십이"); 
hMap.put(333, "삼삼삼"); 

// 취득 
String value = hMap.get(222);  // key 값을 가져옴
System.out.println("value = " + value); 

// 검색 (있다, 없다) 
boolean b = hMap.containsKey(new Integer(333)); 
System.out.println("b = " + b); 

if (hMap.containsKey(333)) { 
String value1 = hMap.get(333); 
System.out.println("value1 = " + value1); 


// 삭제 
String s = hMap.remove(222); 
b = hMap.containsKey(new Integer(222)); 
System.out.println("b = " + b); 

// 수정 
hMap.replace(111, "111"); 
hMap.put(111, "10101"); 
String value1 = hMap.get(111); 
System.out.println("value1 = " + value1); 

// 데이터 전체 출력 
// Iterator 
Iterator<Integer> keys = hMap.keySet().iterator(); 
while (keys.hasNext()) {
Integer key = keys.next();
// 그다음값이 있느냐 없느냐 에따라 트루 펄스 // 제일 속도가 빠름 
// hashmap 에선 이것밖에 사용못함 


System.out.println("key:" + key + " value: " + hMap.get(key)); 
}

// for 
for (Integer key : hMap.keySet()) { 
System.out.println("key:" + key + " value: " + hMap.get(key)); 
}

/////////////////////////정렬
// 정렬 (sorting) 
TreeMap<String, String> treeMap = new TreeMap<>(sMap); 

// 오름 
// Iterator 를 거쳐야함 
Iterator<String> itkey = treeMap.keySet().iterator(); 

while (itkey.hasNext()) { 
String key = itkey.next(); 
System.out.println("key: " + key + "value: " + treeMap.get(key)); 


// 내림 
// Iterator 를 거쳐야함 
Iterator<String> itkey2 = treeMap.descendingKeySet().iterator(); 

while (itkey.hasNext()) { 
String key = itkey2.next(); 
System.out.println("key: " + key + "value: " + treeMap.get(key)); 
}