일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬
- 컬렉션프레임워크
- java 컬렉션 프레임워크
- 파이썬 sqliite
- Java
- 장고 sqlite
- 웹크롤링
- 파이썬딕셔너리
- 이터레이터 제네레이터
- 파이참가상환경
- 파이썬예외
- 북리뷰
- Django sqlite3
- 파이썬강제예외
- 이것이코딩테스트다
- 파이참github연결
- 파이선
- 파이썬가상환경
- hashpmap
- 파이썬웹크롤링
- 파이썬 github
- 포토샵기초
- 파이썬람다함수
- 파이썬try
- 파이썬크롤링
- BeautifulSoup
- 알고리즘공부
- 파이썬크롤링설치
- git.exe
- java 예외
- Today
- Total
박미미의 지식에서 쌓는 즐거움
[JAVA] HashMap과 keySet, EntrySet 본문
[HashMap]
- 배열과 연결이 결합된 형태.
- hashing 기법을 사용하기 때문에 많은 양의 데이터가 저장될때 유용, 검색에 최고성능을 보인다.
- 추가/삭제/검색/접근성이 모두 뛰어나다.
- 순서가 유지되지 않는다. (순서유지가 필요하다면 LinkedHashMap을 사용한다.)
키(key) - 컬렉션 내의 키 중에서 유일해야 한다.
깂(value) - 키와 달리 데이터의 중복을 허용한다.
HashMap map = new HashMap(); map.put("castello","1234"); map.put("asdf","1111"); map.put("asdf","1234"); |
*저장
키 (key) |
값 (value) |
castello |
1234 |
asdf |
1234 |
3개의 데이터 쌍을 저장했지만 실제로는 2개만 저장. 위에 중복된 키가 있기 때문에 추가가아닌 기존 값을 덮어쓰기 때문이다. 값은 중복은 허용하지만 키는 중복이 안됨.
HashTable과 달리 값으로 null 값을 허용한다.
HashMap 안의 내용을 꺼내는데 대표적으로 3가지가 있다.
Map<String, String> map = new HashMap<String, String>(); map.put("key1", "1"); map.put("key2", "2"); map.put("key3", "3"); |
1. entrySet을 이용한 for문
HashMap에 저장된 Key - Value값을 엔트리(키와 값을 결합)의 형태로 Set에 저장하여 반환
Set<Entry<String, String>> entrySet = map.entrySet(); for (Entry<String, String> entry : entrySet) { System.out.println(String.format("키 : %s, 값 : %s", entry.getKey(), entry.getValue())); } |
2. keySet을 이용한 for문
for (String key : map.keySet()) { System.out.println(String.format("키 : %s, 값 : %s", key, map.get(key))); } |
3. Iterator를 이용한 while문
Iterator<String> keys = map.keySet().iterator(); while (keys.hasNext()) { String key = keys.next(); System.out.println(String.format("키 : %s, 값 : %s", key, map.get(key))); } |
* 출처: Java의 정석 (남궁성 저)
'IT 공부 > Java' 카테고리의 다른 글
[코드업 기초100제] 1031~1040번 JAVA (0) | 2021.08.07 |
---|---|
[코드업 기초100제] 1021~1028번 JAVA (0) | 2021.08.05 |
[코드업 기초100제] 1009~1020번 JAVA (0) | 2021.08.03 |
Java 컬렉션 프레임워크와 종류 (0) | 2019.09.14 |
[Java] 예외처리 Exception / try catch (0) | 2019.09.13 |