자바 자료구조

☕️ [JAVA] HashMap

King of Silicon Valley 2021. 10. 12. 17:25
728x90

이번에는 자바의 HaspMap에 대해서 알아보겠습니다. 

해시 자료구조를 익힐 때 정말 어렵게 익혔는데 파이썬의 딕셔너리가 해시자료구조라는 사실에 약간의 허탈함을 느꼈습니다. 

 

어쨋든! 이제 자바에서 key, value형태의 값을 가지는 자료구조 HaspMap에 대해서 알아 보겠습니다. 

 

https://coding-factory.tistory.com/556

 

[Java] 자바 HashMap 사용법 & 예제 총정리

HashMap 이란? HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션입니다. Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있습니다. Map은 키와 값으로 구성된 Entry객체를 저장하는

coding-factory.tistory.com

위 블로그 포스팅을 보고 약간의 수정과 요약정리 했습니다. 

 

HashMap 선언

HashMap<String,String> map1 = new HashMap<String,String>();//HashMap생성
HashMap<String,String> map2 = new HashMap<>();//new에서 타입 파라미터 생략가능
HashMap<String,String> map3 = new HashMap<>(map1);//map1의 모든 값을 가진 HashMap생성
HashMap<String,String> map4 = new HashMap<>(10);//초기 용량(capacity)지정
HashMap<String,String> map5 = new HashMap<>(10, 0.7f);//초기 capacity,load factor지정
HashMap<String,String> map6 = new HashMap<String,String>(){{//초기값 지정
    put("a","b");
}};

 

HashMap 값 추가

HashMap<Integer,String> map = new HashMap<>();//new에서 타입 파라미터 생략가능
map.put(1,"사과"); //값 추가
map.put(2,"바나나");
map.put(3,"포도");

.put()메소드로 해쉬맵에 값을 추가할 수 있습니다. 

첫번째 인자에는 키값 두번째 인자에는 값을 지정해서 삽입합니다. 

HashMap 값 삭제

HashMap<Integer,String> map = new HashMap<Integer,String>(){{//초기값 지정
    put(1,"사과");
    put(2,"바나나");
    put(3,"포도");
}};
map.remove(1); //key값 1 제거
map.clear(); //모든 값 제거

.remove() 메소드에 키값을 집어 넣어서 키어ㅘ 해당하는 값을 삭제 합니다. 

삭제는 키값으로만 지정해서 삭제할 수 있습니다. 

 

.clear()메소드로 모든 값을 삭제할 수 있습니다. 

 

HashMap 값 조회 

HashMap<Integer,String> map = new HashMap<Integer,String>(){{//초기값 지정
            put(1,"사과");
            put(2,"바나나");
            put(3,"포도");
        }};
System.out.println(map.values());
System.out.println(map.keySet());
System.out.println(map.entrySet());
System.out.println(map.get(1));

// [사과, 바나나, 포도]
// [1, 2, 3]
// [1=사과, 2=바나나, 3=포도]
// 사과

.values() 메소드로 값 전부를 조회합니다.

 

.keyset() 키 값 전부를 조회합니다. 

 

.entrySet() 메소드로 키, 값 쌍으로 전부를 조회 합니다. 

 

.get(키값) 메소드에 인자로 키값을 넣어서 해당하는 값을 조회 합니다. 

 

'자바 자료구조' 카테고리의 다른 글

☕️ [JAVA] 우선순위 큐 (Priority Queue)  (0) 2021.10.12
☕️ [JAVA] LinkedList  (0) 2021.10.12
☕️ [JAVA] ArrayList  (0) 2021.10.12
☕️ [JAVA] 이진 탐색트리 구현  (0) 2021.10.08
☕️ [JAVA] 해시리니어 구현  (0) 2021.10.07