알고리즘/[ 개념 ]
[ 개념 ] 35. Iterator(반복자) 인터페이스
kim.svadoz
2020. 9. 11. 17:52
반응형
> 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
반응형