자바의 컬렉션 프레임워크(Collection Framework)는 컬렉션에 저장된 요소를 읽어오는 방법을 Iterator 인터페이스로 표준화하고 있다.
자바에서 Iterator는 컬렉션 프레임워크에서 값을 가져오거나, 삭제할 때 사용한다.
get(i)
메소드 활용 가능Iterator
를 활용하여 객체를 순회함컬렉션 프레임워크를 생성한 뒤 아래와 같이 사용한다.
Iterator<데이터 타입> iterator명 = 컬렉션.iterator();
list의 경우 get(i)메소드를 사용할 수 있어 Set이 아닌 경우 사용할 이유가 있나? 싶지만, Iterator를 사용할 시 얻을 수 있는 장단점들은 다음과 같다.
👍Iterator 장점
😵Iterator 단점
//Member 클래스는 별도 구현
public class MemberTreeSet {
TreeSet<Member> treeSet;
public MemberTreeSet() {
treeSet = new TreeSet<Member>(new Member());
}
public void addMember(Member member) {
treeSet.add(member);
}
public boolean removeMember(int memberId) { //Iterator를 사용한 삭제
Iterator<Member> ir = treeSet.iterator();
while (ir.hasNext()) {
Member member = ir.next();
int tempId = member.getMemberId();
if(tempId == memberId) {
treeSet.remove(member);
return true;
}
}
return false;
}
}
public class MemberHashMap {
HashMap<Integer, Member> hashMap;
public MemberHashMap() {
hashMap = new HashMap<>();
}
public void showAllMember() { //Iterator를 사용한 출력
Iterator<Integer> ir = hashMap.keySet().iterator();
while (ir.hasNext()) {
int key = ir.next();
Member member = hashMap.get(key);
System.out.println(member);
}
}
}