고급자바_Collection Framework_Map

wstudee·2020년 9월 16일
0

JAVA_고급

목록 보기
4/19

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)

  • 가져올 자료가 없으면 null 반환

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객체 가져올 수 있음
  • getKey(), getValue()
// map 내부의 entry를 가져와 Set 형식으로 저장한 것 
Set<Map.Entry<String, String>> mapSet = map.entrySet();
// Set 형식으로 저장된 entry의 값을 가져오려면 Iterator 객체 필요
Iterator<Map.Entry<String,String>> entryIt = mapSet.iterator();
whilt(entryIt.hasNext()){
	Map.Entry<String,String> entry = entryIt.next();
    String key = entry.getKey();	// entry의 key값
    String value = entry.getValue();	// entry의 value값    
}    
// entry의 key값은 getKey()로 value값은 getValue()로 구함

Properties

  • Map 보다 축소된 기능의 객체
  • Map은 모든 형태의 객체 데이터를 Key와 value로 사용가능하지만
  • Properties는 String만 사용가능
  • Map은 put(), get() 메서드로 데이터 입출력하지만
  • Properties는 setProperty(), getProperty() 메서드로 데이터 입출력

0개의 댓글