Iterator, ListIterator, Enumeration
๐ Iterator, ListIterator, Enumeration
์ปฌ๋ ์ ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋๋ฐ ์ฌ์ฉ๋๋ ์ธํฐํ์ด์ค
โข Enumeration์ Iterator์ ๊ตฌ๋ฒ์ ์ด๋ค.
โข ListIterator๋ Iterator์ ์ ๊ทผ์ฑ์ ํฅ์์ํจ ๊ฒ(์๋ฐฉํฅ)
Iterator ๋ฉ์๋ | ์ค๋ช |
---|---|
boolean hasNext() | ์ฝ์ด ์ฌ ์์๊ฐ ๋จ์์๋์ง ํ์ธ. |
Object next() | ๋ค์ ์์๋ฅผ ์ฝ์ด์จ๋ค. |
Enumeration ๋ฉ์๋ | ์ค๋ช |
---|---|
boolean hasMoreElements() | ์ฝ์ด ์ฌ ์์๊ฐ ๋จ์์๋์ง ํ์ธ. |
Object nextElemenet() | ๋ค์ ์์๋ฅผ ์ฝ์ด์จ๋ค. |
๐ Iterator
์ปฌ๋ ์ ์ ์ ์ฅ๋ ์์๋ค์ ์ฝ์ด์ค๋ ๋ฐฉ๋ฒ์ ํ์คํํ ๊ฒ.
interface Iterator
public interface Iterator<E> {
boolean hasNext();
default void remove() {
throw new UnsupportedOperationException("remove");
}
default void forEachRemaining(Consumer<? super E> action) {
Objects.requireNonNull(action);
while(hasNext())
action.accept(next());
}
}
์ฌ์ฉ๋ฒ
์ฌ์ฉ๋ฒ์ ์ปฌ๋ ์
์ iterator()
๋ฅผ ํธ์ถํด์ Iterator๋ฅผ ๊ตฌํํ ๊ฐ์ฒด๋ฅผ ์ป์ด์ ์ฌ์ฉํ๋ค.
List<Integer> list = new ArrayList<>();
Iterator it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
๐ Map๊ณผ Iterator
Map์๋ Iterator()
๊ฐ ์๋ค. (Iterator()
๋ Collection ์ธํฐํ์ด์ค์ ์๋ค.)
๊ทธ๋ ๋ค๋ฉด Map์ ์ด๋ป๊ฒ Iterator๋ก ๋ง๋ค์ ์์๊น??
์ ๋ต์ ๋ฐ๋ก keySet(), entrySet(), values()๋ฅผ ํธ์ถํ๋ฉด ๋๋ค!!!
๐ก ์ค๋ ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ์์ ์ด ๋ถ๋ถ์ด ํ์ฉ๋๋ค.
Iterator it = map.keySet().iterator();
Iterator it = map.entrySet().iterator();
Iterator it = map.values().iterator();