컬렉션 프레임워크 - Iterator

이용만·2023년 3월 6일
0

🔎Iterator : 컬렉션에 저장된 요소들을 순차적으로 읽어오는 역할

Iterator의 컬렉션 순회 기능은 Iterator 인터페이스에 정의되어 있으며, Collection 인터페이스에는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 메서드인 iterator()가 정의되어져 있다.

즉, Collection 인터페이스에 정의된 iterator()를 호출하면, Iterator 타입의 인스턴스가 반환된다.

따라서 Collection 인터페이스를 상속받는 List와 Set 인터페이스를 구현한 클래스들은 iterator() 메서드를 사용할 수 있다.

List에서 String 객체들을 반복해서 하나씩 가져오는 코드 예제

ArrayList<String> list = ...;
Iterator<String> iterator = list.iterator();

while(iterator.hasNext()) {     // 읽어올 다음 객체가 있다면 
	String str = iterator.next(); // next()를 통해 다음 객체를 읽어옵니다. 
	...
}

Iterator를 사용하지 않더라도, for-each문을 이용해서 전체 객체를 대상으로 반복할 수 있다.

ArrayList<String> list = ...;
for(String str : list) {
	...
}

next()메서드로 가져온 객체를 컬렉션에서 제거하고 싶다면 remove() 메서드를 호출한다.
remove() 메서드는 컬렉션에서 실제로 객체를 삭제한다.

ArrayList<String> list = ...;
Iterator<String> iterator = list.iterator();

while(iterator.hasNext()){        // 다음 객체가 있다면
	String str = iterator.next();   // 객체를 읽어오고,
	if(str.equals("str과 같은 단어")){ // 조건에 부합한다면
		iterator.remove();            // 해당 객체를 컬렉션에서 제거합니다. 
	}
}
profile
성장하는 개발자가 되고자 합니다.

0개의 댓글