ListIterator는 Iterator를 상속받아서 기능을 추가한 것, 양방향으로 이동이 가능.
ArrayList나 LinkedList와 같이 List 인터페이스를 구현한 컬렉션만 사용가능.
Enumeration는 Iterator의 구버젼격.
예제 첫번째
package kch;
import java.util.ArrayList;
import java.util.ListIterator;
public class ListIteratorEx1 {
public static void main(String[] args){
ArrayList list = new ArrayList();//리스트를 선언하고
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
ListIterator it = list.listIterator();//Iterator를 받아옴.
while(it.hasNext()){//다음이 있다면 출력함
System.out.print(it.next());
}
System.out.println();
while(it.hasPrevious()){//이전이 있다면 출력함.
System.out.print(it.previous());
}
}
}
예제 두번째
package kch;
import java.util.ArrayList;
import java.util.Iterator;
public class ListIteratorEx2 {
public static void main(String [] args){
ArrayList original = new ArrayList(10);
ArrayList copy1 = new ArrayList(10);
ArrayList copy2 = new ArrayList(10);
//값 추가함
for(int i=0; i < 10; i++){
original.add(i + "");
}
//Iterator 가져옴
Iterator it = original.iterator();
//다음이 있다면 copy1에 추가함.
while(it.hasNext()){
copy1.add(it.next());//복사함
}
System.out.println("= original에서 copy1로 복사 (copy) =");
System.out.println("original: " + original);
System.out.println("copy1 : " + copy1);
System.out.println();
it = original.iterator();
while(it.hasNext()){
copy2.add(it.next());
it.remove();//remove사용시 반드시 next를 한다음에 해야됨,.
}
System.out.println("= original에서 copy2로 이동(move) =");
System.out.println("original:" + original);
System.out.println("copy2 : " + copy2);
}
}
'프로그래밍 > 자바' 카테고리의 다른 글
Java - JSONObject에서 element와 accumulate 차이점 (0) | 2017.09.16 |
---|---|
Java - StringBuilder 사용하기 (0) | 2015.08.08 |
OutputStream flush의 역할 (0) | 2013.12.07 |
[Java] WeakReference 와 SoftReference 의 차이점. (0) | 2013.12.05 |
[java] WeakReference 와 SoftReference (0) | 2013.12.05 |