JAVA/이펙티브 자바

HashMap이란?

간펴니 2021. 8. 26. 12:58
728x90

HashMap은 대표적인 Map 컬렉션 중 하나이다.

 Map 컬렉션에는 HashMap, Hashtable, LinkedHashMap, Properties, TreeMap 등이 있다.

 

Map인터페이스를 상속하고 있기 때문에 Map의 성질을 그대로 가지고 있다.

 

키와 값은 모두 객체이고, 값은 중복저장될 수 있지만, 키는 중복저장될 수 없다.

키를 중복저장하면 기존의 값은 사라지고 새로 등록한 값이 저장된다.

 

HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다고 한다.

 

 

키 (key) 값 (value)은 간단하다.

 

HasMap의 사용법은

 

HashMap<String,Object> map(내가 설정하고 싶은 이름) = new HashMap<>(); 

 

new로 HashMap을 생성해주면 된다.

 

넣고 싶은 값은

 

<String,Integer> 이라면

map.put("사과", 1); 

 

<Integer,String> 이라면

map.put(1, "사과");

 

이런식으로 값을 넣어주면 된다.

 

위는 "사과"라는 이름의 String객체의 값은 1이 되고,

 

아래는 1이라는 이름의 Integer객체의 값은 "사과"가 된다.

 

.put(key값 , value값) 으로 추가,

.remove(key값) 으로 값 제거,

.clear() 로 모든 값 제거

를 할 수 있다.

 

map이라는 해쉬맵의 값은

 

System.out.printIn("[Key}:" + map.getKey() + "[Value]" + map.getValue() ;

 

로 출력해보면

 

[Key] :1 [Value]:사과

[Key]:사과 [Value]:1

 

이렇게 출력된다.

 

특정 key 의 value값을 가져오고 싶다면 map.get(key)를 사용하면 된다.

 

System.out.printIn("[Value] :" + map.get(1) ;

System.out.printIn("[Value] :" + map.get("사과") ;

 

를 출력하면

[Value]:사과

[Value]:1

 

이 출력된다.

 

 

728x90