Map에는 Iteration기능이 없다. (collection에는 있음)
import java.util.*;
class Main {
public static void main(String[] args) {
HashMap<String,Integer> a=new HashMap<String,Integer>();
a.put("one",1);
a.put("two",2);
a.put("three",3);
a.put("four",4);
iteratorUsingForEach(a);
iteratorUsingIterator(a);
}
static void iteratorUsingIterator(HashMap map){
Set<Map.Entry<String,Integer>> entries=map.entrySet();
Iterator<Map.Entry<String,Integer>> i=entries.iterator();
while(i.hasNext()){
Map.Entry<String,Integer> entry=i.next();
System.out.println(entry.getKey()+" : "+entry.getValue());
}
}
static void iteratorUsingForEach(HashMap map){
Set<Map.Entry<String,Integer>> entries=map.entrySet();
for (Map.Entry<String,Integer> entry:entries){
System.out.println(entry.getKey()+" : "+entry.getValue());
}
}
}
Map.Entry라는 형태의 Set을 만들어 Iterator를 이용해 반복문을 사용하는듯 하다.
Map.entry가 뭐하는거지?
찾아보니까 Map의 Key-value를 다루기 위한 인터페이스라고 한다.
entry가 한국어로 등록하다 머 이런뜻이라는데
이거 공부하다보니까 갑자기 인터페이스가 뭔지 기억이 안나네
중딩때 외운 주기율표는 지금도 외울 수 있는데 2년전에 공부한 이건 왜 기억이 안나냐