본문 바로가기

프로그래밍 언어/JAVA 공부

JAVA HashMap 정리

반응형

HashMap이란 Key와 Value를 묶어 하나의 entry 로 저장한다는 특징을 갖고 있습니다. 그리고 hashing을 사용하기 때문에 많은 양의 데이터를 검색하는데 뛰어난 성능이 장점입니다.


- Map 인터페이스의 한 종류로 (Key, value)로 이루어져 있습니다.

- Key 값은 중복이 불가능하고, Value는 중복과 null값이 가능합니다.

- 멀티쓰레드에서는 HashTable을 씁니다.




HashMap 생성자/메소드


 생성자/메소드

설명 

 HashMap()

: HashMap객체 생성 

ex) HashMap<E,E> hm = new HashMap<>();   or

Map<E,E> map = new HashMap<>();

 HashMap(int initialCapacity)

: 지정된 값을 초기 용량으로 하는 HashMap객체 생성 

HashMap(int initialCapacity, float loadFactory) 

: 지정된 값을 초기용량과 load factory의 HashMap객체를 생성한다. 

HashMap(Map m) 

: 주어진 Map에 저장된 모든 요소를 포함하는 HashMap을 생성한다. 

void clear() 

: HashMap에 저장된 모든 객체를 제거한다.

ex) map.clear(); 

Object clone() 

: 현재 HashMap을 복제하여 반환한다.

ex) new map = (HashMap)map.clone(); 

boolean containsKey(Object Key) 

: HashMap에 지정된 키가 포함되어 있는지 알려준다. 

boolean containsValue(Object Value) 

: HashMap에 지정된 값이 있는지 알려준다. 

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의 값을 받는다. 

boolean isEmpty 

: HashMap이 비어있는지 확인한다. 

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]

 void putAll(Map m)

: Map에 해당하는 모든 요소를 HashMap에 저장한다. 

Object remove(Object Key) 

: HashMap에서 지정된 키로 지정된 값을 제거한다.

ex) map.remove(key);

 int size()

HashMap에 저장된 요소의 개수를 반환한다.  

 Collection values()

: HashMap에 저장된 모든 값을 컬렉션 형태로 반환한다. 



HashMap 전체 조회

Set<E> set = hm.entrySet(); // HashMap에 넣은 Key와 Value를 Set에 넣고 iterator에 값으로 Set정보를 담에 준다.

  Iterator<E> itr = set.iterator();  //Iterator itr = hm.entrySet().iterator(); 와 같다.

while (itr.hasNext())

{

Map.Entry<E> e = (Map.Entry<E>)itr.next();

//e.getKey()  or e.getValue() 통한 키와 값 가져오기

}

}



반응형