Java에서 Hashmap과 Map의 차이점

Mohammad Irfan 2023년10월12일
  1. Java의Map인터페이스
  2. Java의HashMap클래스
  3. Map참조를 사용하여 Java에서 오브젝트 보유
  4. Map참조를 사용하여 Java에서 오브젝트 보유
Java에서 Hashmap과 Map의 차이점

이 튜토리얼에서는 Java에서MapHashMap의 주요 차이점을 소개합니다.

Java에서Map은 키-값 쌍으로 데이터를 저장하는 데 사용되는 인터페이스 인 반면HashMapMap인터페이스의 구현 클래스입니다. Java에는 데이터를 키-값 쌍에 저장하기 위해Map인터페이스를 구현하는 여러 클래스 (TreeHashMap,LinkedHashMap)가 있습니다. 몇 가지 예를 살펴 보겠습니다.

Java의Map인터페이스

Map인터페이스만으로는 데이터를 보유 할 수 없지만 해당 구현 클래스의 객체를 생성 한 다음Map참조를 사용하여 객체를 보유 할 수 있습니다. 여기서는HashMap클래스를 사용하여 데이터를 저장하고Map인터페이스를 사용하여이 클래스의 참조를 보유합니다. 아래 예를 참조하십시오.

import java.util.HashMap;
import java.util.Map;

public class SimpleTesting {
  public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
  }
}

출력:

{One=1, Two=2, Three=3}

Java의HashMap클래스

HashMapMap 인터페이스의 구현 클래스입니다. 따라서이를 사용하여 키-값 쌍 모음을 만들 수 있습니다. 아래 예를 참조하십시오.

import java.util.HashMap;

public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
  }
}

출력:

{One=1, Two=2, Three=3}

Map참조를 사용하여 Java에서 오브젝트 보유

Map은 인터페이스이므로HashMap,TreeMap등과 같은 구현 클래스의 참조를 보유하는 데 사용할 수 있습니다.Map인터페이스에TreeMap또는HashMap오브젝트를 보유 할 수 있습니다. 아래 예를 참조하십시오.

import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

public class SimpleTesting {
  public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
    Map<String, Integer> tmap = new TreeMap<>(map);
    System.out.println(tmap);
  }
}

출력:

{One=1, Two=2, Three=3}
{One=1, Three=3, Two=2}

Map참조를 사용하여 Java에서 오브젝트 보유

구현 클래스로 작업하는 동안Map참조를 사용하는 중요한 예입니다. Map객체를 인수로 취하는 메소드가 있습니다. 따라서 호출시HashMap또는HashTable과 같은 모든 클래스의 객체를 전달할 수 있습니다. 아래 예를 참조하십시오.

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;

public class SimpleTesting {
  static void printMap(Map<String, Integer> map) {
    for (String key : map.keySet()) {
      System.out.println(key + ":" + map.get(key));
    }
  }
  public static void main(String[] args) {
    HashMap<String, Integer> hashmap = new HashMap<>();
    hashmap.put("One", 1);
    hashmap.put("Two", 2);
    hashmap.put("Three", 3);
    printMap(hashmap);
    TreeMap<String, Integer> tmap = new TreeMap<>(hashmap);
    printMap(tmap);
    LinkedHashMap<String, Integer> lmap = new LinkedHashMap<>(hashmap);
    printMap(lmap);
  }
}

아래와 같이 코드를 실행하십시오.

Java SimpleTesting 10 20

출력:

10
20

관련 문장 - Java Map

관련 문장 - Java HashMap