Map 인터페이스
- key값과 value값을 한 쌍으로 관리하는 객체
- key값은 중복허용하지 않고, 순서가 없음 (Set의 특징)
- value값은 중복허용 (List의 특징)
Map의 메서드
자료추가 put(key,value)
자료수정 put(key,value)
- 데이터를 저장할 때 key값이 같으면 나중에 입력한 값이 저장됨
- put(수정할 key값, 새로운 value값)
자료삭제 remove(key)
- 삭제 성공하면 삭제한 value값 반환, 실패하면 null 반환
- 전체 삭제는 clear()
자료읽기 get(key)
Map 자료읽기
1. keySet() 메서드 이용
- keySet() : Map의 key 값들만 읽어와 Set 형으로 반환
Set<String> keySet = map.keySet();
<Iterator 이용>
Iterator<String> it = keySet.iterator();
while(it.hasNext()){
String key = it.next();
System.out.println(key + " : " + map.get(key));
}
<향상된 for문 이용>
for(String key : keySet) {
System.out.println(key + " : " map.get(key));
}
2. value값만 읽기
for(String value : map.values()){
System.out.println(value);
}
3. Entry 클래스
- 가장 Map 스러운 방법
- key + value = entry
- Map 인터페이스 내부에 Entry 클래스가 있음
- Entry 클래스는 멤버변수로 key와 value를 가지고 있음
- Entry는 Set형식으로 저장되어 있음
- entrySet() 메서드로 Entry객체 가져올 수 있음
Set<Map.Entry<String, String>> mapSet = map.entrySet();
Iterator<Map.Entry<String,String>> entryIt = mapSet.iterator();
whilt(entryIt.hasNext()){
Map.Entry<String,String> entry = entryIt.next();
String key = entry.getKey();
String value = entry.getValue();
}
Properties
- Map 보다 축소된 기능의 객체
- Map은 모든 형태의 객체 데이터를 Key와 value로 사용가능하지만
- Properties는 String만 사용가능
- Map은 put(), get() 메서드로 데이터 입출력하지만
- Properties는 setProperty(), getProperty() 메서드로 데이터 입출력