[자바/JAVA] 키-값으로 저장되는 HashMap
- Java
- 2021. 5. 22.
정의
HashMap은 Map 인터페이스를 구현한 함수다. Collection Framework에 속해있다. 키(key)와 값(Value)으로 구성된 객체를 저장한다. 키는 중복을 허용하지 않으며 값은 중복 저장이 가능하다. 같은 키가 새롭게 저장되면 이전에 있던 키-값은 사라진다. HashMap에 데이터가 저장될 때 그 순서는 의미가 없다.
활용
HashMap은 여러 검색 방식 중 속도가 빠른 해싱 검색을 사용하기 때문에 많은 양의 데이터를 두고 검색할 때 더 빠른 결과를 얻을 수 있다. 이와 함께 키를 이용해서 그에 해당하는 값을 찾는 특성 때문에 전화번호부(전화번호-이름), 편의점 상품 관리(상품명-가격) 처럼 많은 데이터를 저장하고 쉽게 검색 관리해야 하는 기능을 구현할 때 사용할 수 있다.
사용법
- HashMap<데이터 타입> 참조변수명 = new HashMap<>();
- put(key, value)
HashMap<String, String> store = new HashMap<>();
// HashMap 객체 생성
map.put("ramen", "1000");
map.put("coke", "1200");
map.put("beer", "2500");
// put메서드 통해서 hashmap map에 <String(key), String(value)>형으로 값 저장
// bbbb는 중복해서 들어갔음. map에선 key 값이 중복될 수 없음. 덮어쓰기로 수행됨
HashMap은 java.util에 있기 때문에
import java.util.*;
import가 필요하다.
제네릭<> 문법을 이용해서 HashMap<데이터 타입> 변수명 = new HashMap<>();
으로 객체를 생성하면 된다.
Iterator 활용한 반복문
Iterator
은 컬렉션에 저장된 데이터를 읽어오는 데 사용된다. hasNext()
메서드를 통해 읽어올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환한다. 이를 while
문에 넣어서 값을 반복적으로 꺼내올 수 있다.
- Iterator
- hasNext()
- HashMap
- entrySet()
- Map.Entry
- getKey()
- getValue()
import java.util.*;
public class HashMapEx2 {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("김자바", 90);
map.put("김자바", 100);
map.put("이자바", 100);
map.put("강자바", 80);
map.put("안자바", 90);
Set set = map.entrySet();
// key, value 모두 출력할 때 entrySet() 사용한다.
Iterator it = set.iterator();
while(it.hasNext()) {
// 요소가 있으면 true를 반환하고 반복문을 수행한다.
Map.Entry e = (Map.Entry)it.next();
// Entry 타입으로 e 객체를 만든다. e 객체로 데이터를 뽑아오기 위해서다.
System.out.println("이름: "+ e.getKey() + ", 점수: " + e.getValue());
}
출력값
이름: 안자바, 점수: 90
이름: 김자바, 점수: 100
이름: 강자바, 점수: 80
이름: 이자바, 점수: 100
반응형
'Java' 카테고리의 다른 글
[자바/JAVA] 예외(Exception) 처리에 대해, try ~ catch | throw (0) | 2021.05.30 |
---|---|
[자바/JAVA] 변수(Variable)란 무엇인가, 용어를 중심으로 (0) | 2021.05.25 |
[자바/JAVA] 일반 배열보다 편리한 ArrayList (0) | 2021.05.20 |
[자바/JAVA] Properties로 XML 파일에 값 넣기 (0) | 2021.05.18 |
[자바/JAVA] 짧게 후려치는 Generic의 개념과 문법 (0) | 2021.05.16 |