이번에는 자바의 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 |