[ ์๋ฐ Iterator ]
- ์๋ฐ ์ปฌ๋ ์ ํ๋ ์์ํฌ(JCF)๋ ์ ์ฅ๋ ์์๋ฅผ ์ฝ์ด์ค๊ธฐ ์ํด
Iterator<E> ์ธํฐํ์ด์ค ์ฌ์ฉ์ ํ์คํ๋ก ์ ๊ณตํ๊ณ ์์
- Collection ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ๋ List์ Set ์ธํฐํ์ด์ค๋ Iterator ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ
ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ iterator() ๋ฉ์๋๋ฅผ ํตํด ๊ฐ ์์์ ์ ๊ทผ ๊ฐ๋ฅ

ใ Iterator ๋ฉ์๋ ใ

// -- Set<E> Interface --
Set <String> set = new HashSet <String>();
set.add("1");
set.add("2");
set.add("3");
System.out.println("== [Set ์ธํฐํ์ด์ค] HashSet ๊ฐ์ฒด -> Iterator ์ถ๋ ฅ ==");
Iterator <String> iter = set.iterator();
while(iter.hasNext()) {
System.out.print(iter.next() + " ");
}
/* [์ถ๋ ฅ๊ฒฐ๊ณผ]
== [Set ์ธํฐํ์ด์ค] HashSet ๊ฐ์ฒด -> Iterator ๊ฐ์ฒด ์ถ๋ ฅ ==
1 2 3
*/
[ ์๋ฐ ListIterator ]
- ListIterator<E> ์ธํฐํ์ด์ค๋ Iterator ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ธํฐํ์ด์ค
- ๊ธฐ์กด Iterator ์ธํฐํ์ด์ค๋ ์ปฌ๋ ์ ์์ ์ ๊ทผ ์ ํ ๋ฐฉํฅ์ผ๋ก๋ง ๊ฐ๋ฅํ์.
- ListIterator๋ ์ปฌ๋ ์ ์์ ๋์ฒด, ์ถ๊ฐ, ์ธ๋ฑ์ค ๊ฒ์ ๋ฑ์ ์ํ ์์ ์์ ์๋ฐฉํฅ ์ด๋ ์ง์
- List ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ List ์ปฌ๋ ์ ํด๋์ค์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
ใ ListIterator ๋ฉ์๋ ใ

// -- List<E> Interface --
List <String> list = new ArrayList <String>();
list.add("1");
list.add("2");
list.add("3");
System.out.println("== [List ์ธํฐํ์ด์ค] ArrayList ๊ฐ์ฒด ListIterator ์ถ๋ ฅ ==");
ListIterator <String> iter = list.listIterator();
while(iter.hasNext()) {
System.out.print(iter.next() + " ");
}
while(iter.hasPrevious()) { // ์ญ์ ์ถ๋ ฅ
System.out.print(iter.previous() + " ");
}
/* [์ถ๋ ฅ๊ฒฐ๊ณผ]
== [List ์ธํฐํ์ด์ค] ArrayList ๊ฐ์ฒด ListIterator ์ถ๋ ฅ ==
1 2 3 3 2 1
*/