반응형
> Iterator
Iterator는 자바의 컬렉션 프레임웍에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법을 표준화 하였는데 그중 하나가 Iterator 인터페이스이다.
public interface iterator {
boolean hasNext();
Object next();
void remove;
}
- boolean hasNext() : 읽어올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환
- Obejct next() : 읽어올 요소가 남아있는지 확인하는 메소드. 있으면 true 없으면 false를 반환
- void remove() :
next()
로 읽어온 요소를 삭제한다. 따라서next()
를 호출한 다음에remove()
를 호출해야 한다. ( 선택적 기능임 )
List 정렬시키는 방법
ArrayList<Integer> list = new ArrayList<Integer>();
Iterator<Integer> it = list.iterator();
while(it.hasNext()){
list.get(it.next());
}
Iterator를 활용해서 list의 모든 값을 가져온다.
Iterator는 자동으로 Index를 관리해주기 때문에 사용헤 편리함이 있을수 있으나 Iterator를 열어보면 객체를 만들어 사용하기 때문에 느릴 수 밖에 없다.
따라서 list의 size를 받아서 사용하는 것이 더 좋다 !!
Map 정렬시키는 네가지 방법
HashMap<String, String> map = new HashMap<String, String>();
...
// 1
Iterator<String> it = map.keySet().iterator();
while(it.hasNext()){
String key = it.next();
}
// 2
for(Map.Entry<String, String> elem : map.entrySet()) {
String key = elem.getKey();
String value = elem.getValue();
}
// 3
for(String key : map.keySet()){
String key = key;
String value = map.get(key);
}
// 4
map.forEach((key, value) -> System.out.println("key: "+key+", value: "+value));
성능테스트 결과
4-> 2 -> 3 -> 1
반응형
'알고리즘 > [ 개념 ]' 카테고리의 다른 글
[ 개념 ] 37. 다익스트라(Dijkstra) 알고리즘 (2) | 2020.09.13 |
---|---|
[ 개념 ] 36. Two Pointer(투포인터), Sliding-Window(슬라이딩 윈도우) (3) | 2020.09.13 |
[ 개념 ] 34. Tree - 최소신장트리(MST)와 크루스칼(Kruskal) 알고리즘 (0) | 2020.09.11 |
[ 개념 ] 33. Tree - 스패닝 트리(ST) (0) | 2020.09.11 |
[ 개념 ] 32. Graph - 유니온 파인드(Union-Find) 알고리즘 (0) | 2020.09.11 |