앞서서 살펴본 예제를 이어서 진행해 보겠습니다.
import java.util.*;
public class ExampleMain {
public static void main(String[] args) {
// Map 컬렉션의 생성
Map<String, Integer> map = new HashMap<String, Integer>();
// 객체 저장(중복 key 사용)
map.put("SWINGS", 90);
map.put("DEAN", 50);
map.put("BLACKNUT", 67);
map.put("DEAN", 12);
System.out.println("총 Entry 개수: " + map.size());
// key로 객체의 value 찾아내기
System.out.println("\tDEAN : " + map.get("DEAN"));
System.out.println();
// 객체를 하나씩 처리하기
Set<String> keySet = map.keySet();
Iterator<String> keyIterator = keySet.iterator();
while( keyIterator.hasNext() ) {
String key = keyIterator.next();
Integer value = map.get(key);
System.out.println("\t" + key + " : " + value);
}
// 객체를 삭제하기
map.remove("DEAN");
System.out.println("총 Entry 개수: " + map.size());
// 객체를 하나씩 처리하기
Set< Map.Entry<String, Integer> > entrySet = map.entrySet();
Iterator< Map.Entry<String, Integer> > entryIterator = entrySet.iterator();
while(entryIterator.hasNext()) {
Map.Entry<String, Integer> entry = entryIterator.next();
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println("\t" + key + " : " + value);
}
System.out.println();
// 객체 전체 삭제
map.clear();
System.out.println("총 Entry 개수: " + map.size());
}
}
/* 출력
총 Entry 개수: 3
DEAN : 12
DEAN : 12
SWINGS : 90
BLACKNUT : 67
총 Entry 개수: 2
SWINGS : 90
BLACKNUT : 67
총 Entry 개수: 0
*/
사용자 정의 객체를 사용하는 HashMap 예제를 하나만 더 살펴보겠습니다. 즉, 사용자 정의 객체인 Student를 key로 사용하고, 이에 따라 value로는 점수를 저장하는 예제입니다. 특히, 여기서 사용하는 학번과 이름이 동일한 Student 객체는 동등한 키로 간주하기 위해 hasCode( )와 equals( )를 오버라이드 합니다.
public class Student {
public int sno;
public String name;
public Student(int sno, String name) {
this.sno = sno;
this.name = name;
}
// 학번과 이름이 같을 경우 true
public boolean equals(Object obj) {
if(obj instanceof Student) {
Student student = (Student) obj;
return (sno==student.sno) && (name.equals(student.name));
} else {
return false;
}
}
// 학번과 이름이 같다면 동일한 값을 리턴한다
public int hashCode() {
return sno + name.hashCode();
}
}
import java.util.*;
public class ExampleMain {
public static void main(String[] args) {
Map<Student, Integer> map = new HashMap<Student, Integer>();
map.put( new Student(1, "SWINGS"), 95);
map.put( new Student(1, "SWINGS"), 95);
System.out.println("총 Entry 수: " + map.size());
}
}
/* 출력
총 Entry 수: 1
*/
'Programming > JAVA' 카테고리의 다른 글
컬렉션 프레임워크(4) - Map 컬렉션 4 : Properties (0) | 2023.12.23 |
---|---|
컬렉션 프레임워크(4) - Map 컬렉션 3 : Hashtable (0) | 2023.12.14 |
컬렉션 프레임워크(4) - Map 컬렉션 2 : HashMap[1/2] (0) | 2023.12.08 |
컬렉션 프레임워크(4) - Map 컬렉션 1 : Map의 개념[2/2] (0) | 2023.12.01 |
컬렉션 프레임워크(4) - Map 컬렉션 1 : Map의 개념[1/2] (1) | 2023.11.30 |