[자바/JAVA] 키-값으로 저장되는 HashMap

정의

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
반응형

댓글

Designed by JB FACTORY