예제)
import java.util.Hashtable;
import java.util.Iterator;
public class Test2 {
public static void main(String[] args) {
/*
* Map : 키,값의 구조
* 키는 Set으로 중복을 허용하지 않는다.
* 대표적인 구현클래스 : Hashtable, HashMap
* Hashtable : 동기화 지원(속도가 느림)
* HashMap : 동기화 지원하지 않음
*/
Hashtable<String, String> map=new Hashtable<String, String>();
map.put("서울", "1000만"); //왼쪽이 키(set) // put 데이터 추가(키(set), 값)
map.put("부산", "350만");
map.put("대구", "300만");
map.put("인천", "300만");
map.put("광주", "150만");
map.put("대전", "150만");
map.put("서울", "1100만");
System.out.println(map);
// 데이터 가져오기(값)
String s=map.get("부산");
System.out.println(s);
//키가 존재하는지 확인할 때
if(map.containsKey("울산"))
System.out.println("있다.");
else
System.out.println("없다");
//값이 존재하는지 확인할 때
if(map.contains("150만"))
System.out.println("있다");
else
System.out.println("없다");
//제거
map.remove("대전"); //키를 입력하여 제거한다.
System.out.println(map);
//Map의 전체출력!!!
//Map은 이터레이터가 없다. 그러므로 향상된 for문도 사용불가. =>vector와 ArrayList, set처럼 전체출력 못함.
//하지만 key가 set(set은 Test1 예제 참고)이므로 key를 이용하여 전체순회하면서 처리.
//map.keySet() : key의 Set 객체 리턴
Iterator<String> it=map.keySet().iterator(); // 맵의참조변수.keySet().iterator();를 기억하자
while(it.hasNext()){
String key=it.next();
String value=map.get(key);
}
}
}
결과)
{인천=300만, 대구=300만, 서울=1100만, 대전=150만, 광주=150만, 부산=350만}
350만
없다
있다
{인천=300만, 대구=300만, 서울=1100만, 광주=150만, 부산=350만}