Java Collection Framework Part 3.

Peaceยท2022๋…„ 2์›” 16์ผ
0
post-thumbnail

๐Ÿ™Œ Iterator, ListIterator, Enumeration๋ฅผ ์•Œ์•„๋ณด๊ธฐ

๐Ÿง Iterator๋ž€ โ“

์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ์ปฌ๋ ‰์…˜์— ์ €์žฅ๋œ ์š”์†Œ๋“ค์„ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ํ‘œ์ค€ํ™”ํ•˜์˜€๋‹ค. Iterator์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ปฌ๋ ‰์…˜์— ์ €์žฅ๋œ ์š”์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์กŒ๋‹ค.

iterator() <- ์ด ์นœ๊ตฌ๋Š” Iterator๋ฅผ ๋ฐ˜ํ™˜ํ•จ. ๋Š” Collection์ธํ„ฐํŽ˜์ด์Šค์— ์ •์˜๋œ ๋ฉ”์„œ๋“œ์ด๋ฏ€๋กœ, Collection์— ์ž์†์ธ List์™€ Set์—๋„ ์ •์˜๋˜์–ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, Map์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ์ปฌ๋ ‰์…˜์—๋Š” key์™€ value๋ฅผ ์Œ์œผ๋กœ ์ด๋ค„์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, iterator()๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” keySet()์ด๋‚˜ entrySet()๊ณผ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ Iterator๋„ List์™€ Set์— ํŠน์ง•์„ ๊ทธ๋Œ€๋กœ ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ž˜์„œ Listํด๋ž˜์Šค๋“ค์„ ์ฝ์–ด์˜ฌ ๋•Œ๋Š” ์ €์žฅ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์ฝ์–ด์˜ค์ง€๋งŒ, Set์€ ์ €์žฅ ์ˆœ์„œ๋ฅผ ๊ทธ๋Œ€๋กœ ์ฝ์ง€ ์•Š๋Š”๋‹ค.

๐Ÿง Iterator๋Š” ์–ด๋–ค method๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„๊นŒโ“

  • boolean hasNext() : ์ฝ์–ด ์˜ฌ ์š”์†Œ๊ฐ€ ๋‚จ์•„์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์žˆ์œผ๋ฉด true, ์—†์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • Object next(): ๋‹ค์Œ ์š”์†Œ๋ฅผ ์ฝ์–ด ์˜จ๋‹ค. next()๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์—, hasNext()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜์ž.
  • void remove(): next()๋กœ ์ฝ์–ด ์˜จ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

๐Ÿคœ์˜ˆ์ œ

List list = new ArrayList();
Iterator it = list.iterator();

while(it.hasNext()){
	System.out.println(it.next());
}

๐Ÿง ListIterator์™€ Enumberation์€ ๋ญ˜๊นŒโ“

Enumeration์€ Iterator์˜ ๊ตฌ๋ฒ„์ ผ, ์ด์ „ ๋ฒ„์ ผ์œผ๋กœ ์ž‘์„ฑ๋œ ๊ฒƒ๋“ค๊ณผ์˜ ํ˜ธํ™˜์„ ์œ„ํ•ด ๋‚จ๊ฒจ๋‘์—ˆ๋‹ค. ์ด๊ฑฐ ๋ง๊ณ  Iterator๋ฅผ ์“ฐ์ž!!
ListIterator Iterator์— ์–‘๋ฐฉํ–ฅ ์กฐํšŒ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ํ•˜์ง€๋งŒ, List๋ฅผ ๊ตฌํ˜„ํ•œ ๊ตฌํ˜„์ฒด๋“ค๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ!!

๐Ÿง ListIterator์˜ method๋งŒ ์•Œ์•„๋ณด์žโ—๏ธ(Iterator์™€ ๋‹ค๋ฅธ ๊ฒƒ๋“ค๋งŒ!)

  • boolean hasPrevious(): ์ฝ์–ด ์˜ฌ ์ด์ „ ์š”์†Œ๊ฐ€ ๋‚จ์•„์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ์žˆ์œผ๋ฉด true, ์—†์œผ๋ฉด false
  • Object previous(): ์ด์ „ ์š”์†Œ๋ฅผ ์ฝ์–ด ์˜ค๊ธฐ. ์ด๊ฒƒ๋„ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— hasPrevious()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • int nextIndex(): ๋‹ค์Œ ์š”์†Œ์˜ index๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • int previousIndex(): ์ด์ „ ์š”์†Œ์˜ index๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿคœ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ์ฝ์–ด์˜ค๊ธฐ ์˜ˆ์ œ

List list = new ArrayList();
ListIterator it = list.listIterator();

while(it.hasPrevious()){
	System.out.println(it.previous());
}

Reference

  • Java์˜ ์ •์„ 2ํŽธ - ๋‚จ๊ถ์„ฑ
profile
https://peace-log.tistory.com ๋กœ ์ด์‚ฌ ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€