Java에서 Hashmap과 Map의 차이점
Mohammad Irfan
2023년10월12일
이 튜토리얼에서는 Java에서Map
과HashMap
의 주요 차이점을 소개합니다.
Java에서Map
은 키-값 쌍으로 데이터를 저장하는 데 사용되는 인터페이스 인 반면HashMap
은Map
인터페이스의 구현 클래스입니다. 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
클래스
HashMap
은Map
인터페이스의 구현 클래스입니다. 따라서이를 사용하여 키-값 쌍 모음을 만들 수 있습니다. 아래 예를 참조하십시오.
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