Map<K, V> 인터페이스
📌 Map<K, V> 인터페이스를 구현하는 컬렉션 클래스
① HashMap<K, V>
② TreeMap<K, V>
: 트리 자료구조 기반으로 정렬 상태를 유지함.
📌 Map<K, V> 인터페이스를 구현하는 컬렉션 클래스의 특징
① Key와 Value가 한 쌍을 이루는 형태로 데이터 저장.
📌 Key는 중복 불가. Value는 중복 가능.
HashMap<K, V> 클래스
📌 HashMap<K, V> 클래스는 public Set<K> keySet()을 사용해 순차적 접근함.
📌 public Set<K> keySet( )
: Set<E>을 구현하는 컬렉션 인스턴스를 생성하고, 모든 Key를 담아 반환함.
📄 HashMapTest.java
package map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class HashMapTest {
public static void main(String[] args) {
HashMap<Integer, String> map = new HashMap<>();
map.put(3000, "apple");
map.put(1000, "banana");
map.put(5000, "cherry");
map.put(10000, "watermelon");
// Key만 담고 있는 컬렉션 인스턴스 생성.
Set<Integer> ks = map.keySet();
// 전체 Key, Value 출력.
for(Integer i : ks) {
System.out.print(i.toString() + " " + map.get(i).toString() + " "); // 10000 watermelon 3000 apple 1000 banana 5000 cherry
}
System.out.println();
// 전체Value 출력.
for(Iterator<Integer> it = ks.iterator(); it.hasNext();) {
System.out.print(map.get(it.next()) + " "); // watermelon apple banana cherry
}
System.out.println();
}
}
TreeMap<K, V> 클래스
📌 HashMap<K, V> 클래스는 public Set<K> keySet()을 사용해 순차적 접근함.
📌 public Set<K> keySet( )
: Set<E>을 구현하는 컬렉션 인스턴스를 생성하고, 모든 Key를 담아 반환함.
📄 TreeMapTest.java
package map;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap;
class PriceComparator implements Comparator<Integer> {
public int compare(Integer n1, Integer n2) {
return n2.intValue() - n1.intValue();
}
}
public class TreeMapTest {
public static void main(String[] args) {
TreeMap<Integer, String> map = new TreeMap<>(new PriceComparator());
map.put(3000, "apple");
map.put(1000, "banana");
map.put(5000, "cherry");
map.put(10000, "watermelon");
// Key만 담고 있는 컬렉션 인스턴스 생성.
Set<Integer> ks = map.keySet();
// 전체 Key, Value 출력.
for(Integer i : ks) {
System.out.print(i.toString() + " " + map.get(i).toString() + " "); // 10000 watermelon 5000 cherry 3000 apple 1000 banana
}
System.out.println();
// 전체Value 출력.
for(Iterator<Integer> it = ks.iterator(); it.hasNext();) {
System.out.print(map.get(it.next()) + " "); // watermelon cherry apple banana
}
System.out.println();
}
}
'Java > Java' 카테고리의 다른 글
[Java] 람다(Lambda) (0) | 2022.10.20 |
---|---|
[Java] 네스티드 클래스(Nested Class)와 이너 클래스(Inner Class) (0) | 2022.10.20 |
[Java] 컬렉션 프레임워크 - Queue<E> 인터페이스 (0) | 2022.10.18 |
[Java] 컬렉션 프레임워크 - Set<E> 인터페이스 (0) | 2022.10.18 |
[Java] 컬렉션 프레임워크 - List<E> 인터페이스 (0) | 2022.10.18 |
댓글