2014년 5월 20일 화요일

[JAVA] HashMap

[JAVA] HashMap

#. HashMap이란?

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


  • Map 인터페이스의 한 종류로 ( "Key", value) 로 이뤄져 있다.
  • Key값을 중복이 불가능 하고 value는 중복이 가능. value에 null값도 사용 가능하다.
  • 멀티쓰레드에서 동시에 HashMap을 건드려 Keyvalue값을 사용하면 문제가 될 수 있다. 멀티쓰레드에서는 HashTable을 쓴다

#. HashMap 생성자 / 메서드

생성자 / 메서드
설명 
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에 저장된 모든 값을 컬렉션 형태로 반환한다. 









#. 사용

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원


참고 >

댓글 없음:

댓글 쓰기