Collection
Array는 index로 빠르게 값을 찾을 수 있다.
LinkedList는 데이터를 삭제하고 삽입하는데 빠르다
ArrayList는 데이터를 찾는데 빠르지만 데이터의 삽입과 삭제가 느리다.
iterator, ListIterator, Enumeration
- 컬렉션에 저장된 데이터를 읽어오는데 사용되는 인터페이스
1. 확인 - Boolean hasNext() 읽어 올 요소가 남아있는지 확인한다
2. 출력 - Object Next() 다음 요소를 읽어온다.
다음 요소가 없으면 false 리턴.
iterator의 메서드 - 핵심
Enumeration의 메서드
- 구버젼
iterator 메서드와 거의 같다.
ListIterLator의 메서드
양방향 - previous() 추가
List 인터페이스를 구현한 컬렉션에서만 쓸 수 있다.
iterator 쓰는 이유
컬렉션 마다 구조가 다른 List, Set, Map을 표준화 한 iterator
순서
1. 확인
2. 읽기
iterator 사용법
iterator를 호출하여 iterator를 구현, 반환한 객체를 얻어 사용
iterator 실습
iterator는 일회용이며. 다 쓰고 나면 다시 얻어와야 한다.
!!! ArrayList든 LinkedList든 HashSet이든 다 Collection의 자손이니 참조변수 타입을
Collection으로 하면 클래스를 바꿔도 공통된 메서드를 사용할 수 있다.
ex)
Map에 없는 iterator 사용
keySet(), entrySet(), valuse()를 호출하여 사용
ㄴ Set entrySet() : Map에 저장된 key-value 쌍을 Map.Entry타입의 객체로 저장한 Set으로 반환.
ex) Map.entrySet().iterator(); ..