[Java] HashMap 정리

2019. 1. 31. 15:26
반응형

[Java] HashMap 정리



 HashMap


HashMap은 Map을 구현한다. 

Key와 value를 묶어 하나의 entry로 저장한다는 특징을 갖는다. 

그리고 hashing을 사용하기 때문에 많은양의 데이터를 검색하는데 뛰어난 성능을 보인다.


 

Map 인터페이스의 한 종류로 ( "Key", value) 로 이뤄져 있다.

key 값을 중복이 불가능 하고 value는 중복이 가능. 

value에 null값도 사용 가능하다.

멀티쓰레드에서 동시에 HashMap을 건드려 Key - value값을 사용하면 문제가 될 수 있다. 멀티쓰레드에서는 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에 저장된 모든 값을 컬렉션 형태로 반환한다. 


  

▼ HashMap 사용 예

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package test;
import java.util.*;
import java.util.Map.Entry;
public class HashTest
{
 public static void main(String[] args) 
 {
  HashMap<String, Integer> strudyMap = new HashMap();
  strudyMap.put("국어"73);
  strudyMap.put("영어"92);
  strudyMap.put("수학"88);
  // keySet()_모든 Key값 출력
  // values()_모든 Value값 출력
  System.out.println( strudyMap.keySet() ); 
  System.out.println( strudyMap.values() ); 
 
  // get()_Key에 해당하는 Value를 출력한다.
  //System.out.println( strudyMap.get("수학") );  
  // HashMap에 넣은 Key와 Value를 Set에 넣고 iterator에 값으로 Set정보를 담에 준다.
  //Set<Entry<String, Integer>> set = strudyMap.entrySet();
  //Iterator<Entry<String, Integer>> itr = set.iterator();
  //위의 내용을 한줄로 줄임
  Iterator itr = strudyMap.entrySet().iterator();
  
  
  while (itr.hasNext())
  {
    // 맵으로 해당 아이터레이터정보를 받아와정리
   Map.Entry<String, Integer> e = (Map.Entry<String, Integer>)itr.next();
    //데이터를뿌려줌
   System.out.println("과목 : " + e.getKey() +" || " +"점수 : " + e.getValue() + "점");
  }
}
 
}
cs



반응형

BELATED ARTICLES

more