2013년 1월 16일 수요일

[Java] HashMap을 활용한 또다른 예제


public class MapExam02 {

public static void main(String[] args) {
// 성적관리 프로그램
HashMap<String, Integer> map = new HashMap<String, Integer>();

map.put("김용도", 100);
map.put("현학준", 90);
map.put("신동민", 80);
map.put("윤상수", 80);
map.put("홍길동", 70);

Set set = map.keySet();
System.out.println("시험명단: " + set);

//Map => Collection => Iterator
Collection values = map.values();//value값들 넣기
Iterator iter = values.iterator();
int total = 0;
while(iter.hasNext()){
total += (Integer)iter.next();
}
System.out.println("총점 : " + total);
System.out.println("평균 : " + (double)total/map.size());
System.out.println("최대값 : " + Collections.max(values));
System.out.println("최소값 : " + Collections.min(values));
}
}
---------------------------------------------------------------------------------

이 예제를 보면 앞서 했던 예제와 비슷한 과정이 진행된다.
즉 map을 Iterator로 받고 싶지만 그럴 수 없기 때문에 map.values()메소드를 호출한다. 이 메소드는 Value들을 Collection 인터페이스가 받을 수 있는 형태로 리턴해 준다. 그러므로 Collection 인터페이스가 필요하다!

Collection 인터페이스에 iterator()메소드를 호출하면 바로 Iterator화 할 수 있고 메소드를 활용할 수 있다.

사실 Collection 은 Iterable을 구현하였고 Set은 Collection을 구현하고 있는 관계이다.

댓글 없음:

댓글 쓰기