주요 메서드
boolean hasNext() | 읽어 올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환한다. |
---|---|
Object next() | 다음 요소를 읽어 온다. next( )를 호출하기 전에 hasNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전 |
(1) 기본 예제
public static void main(String[] args) {
ArrayList<String> list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
Iterator it = list.iterator(); // iterator 선언
while(it.hasNext()){ // it안에 값 유무 체크
Object obj = it.next(); // it값을 처음부터 순서대로 읽기
System.out.println(obj);
}
// 여기는 값이 없음 이유는 이미 위에서 처음부터 끝까지 읽었기 때문에 더이상 값이 없어서 출력할값이 없음
while(it.hasNext()){
Object obj = it.next();
System.out.println(obj);
}
// iterator과 같은 의미로 사용할 수 있지만 만약 Arraylist가 아닌 HashSet list = new HashSet으로 변경하여 사용한다면
// 같은 Collection클래스의 하위로 iterator는 사용할 수 있지만 for문 안에 get()은 사용할 수가 없음.
// 즉, iterator는 코드변경 불필요 for문은 코드변경 필요
for(String i =0; i<list.size(); i++){
Object obj = list.get(i);
System.out.println(obj);
}
}
(2) HashSet를 이용한 예제
import java.util.HashSet;
import java.util.Iterator;
public class HashSetTest2 {
public static void main(String[] args) {
HashSet setA = new HashSet();
HashSet setB = new HashSet();
HashSet setHab = new HashSet();
HashSet setKyo = new HashSet();
HashSet setCha = new HashSet();
setA.add("1"); setA.add("2"); setA.add("3"); setA.add("4"); setA.add("5");
System.out.println("A = "+setA);
setB.add("4"); setB.add("5"); setB.add("6"); setB.add("7"); setB.add("8");
System.out.println("B = "+setB);
Iterator it = setB.iterator(); // 모든 숫자 출력하기 위한 클래스
while(it.hasNext()){ // 마지막 자리까지 반복
Object tmp = it.next(); // tmp에 한줄씩 값 대입
if(setA.contains(tmp)) // setB와 setA의 값을 비교하여 같은 값만 대입
setKyo.add(tmp);
}
it = setA.iterator();
while(it.hasNext()){
Object tmp = it.next();
if(!setB.contains(tmp)) // setA를 setB의 값과 비교하여 다른 값만 대입
setCha.add(tmp);
}
it = setA.iterator();
while(it.hasNext())
setHab.add(it.next()); // setHab에 setA의 값 모두 대입
it = setB.iterator();
while(it.hasNext())
setHab.add(it.next()); // setHab에 setB의 값 모두 대입
System.out.println("A ∩ B =" +setKyo);
System.out.println("A ∪ B =" +setHab);
System.out.println("A - B =" +setCha);
}
}