โถ Iterator๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ฅผ ์ํํ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋
MemberArrayList.java์ removeMember( ) ๋ฉ์๋๋ฅผ ๋ณด๋ฉด for ๋ฌธ๊ณผ get(i) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํ์์ ์์ฐจ์ ์ผ๋ก ํ๋์ฉ ๊บผ๋ด๋ฉด์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ ์์ด๋๋ฅผ ์ฐพ๋๋ค. ๊ทธ๋ฐ๋ฐ ์์๊ฐ ์๋ Set ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฒฝ์ฐ์๋ get(i) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๋ Iterator๋ฅผ ์ฌ์ฉํ๋ค.
Iterator๋ Collection ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฐ์ฒด์์ ๋ฏธ๋ฆฌ ์ ์๋์ด์๋ iterator( ) ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ฐธ์กฐํ๋ค.
์๋ฅผ ๋ค์ด Collection์ ๊ตฌํํ ArrayList์ iterator( ) ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด Iterator ํด๋์ค๊ฐ ๋ฐํ๋๋ฏ๋ก ๋ค์์ฒ๋ผ Iteratorํ ๋ณ์์ ๋์ ํด ์ฌ์ฉํ๋ค.
โ
Iterator ๋ฉ์๋์๋ hasNext( ), next( ), remove( )๊ฐ ์๋ค.
hasNext( ) : ์ฝ์ด์ฌ ์์๊ฐ ๋จ์์๋์ง ํ์ธํ๋ ๋ฉ์๋. ์์๊ฐ ์์ผ๋ฉด true, ์์ผ๋ฉด false
next( ) : ๋ค์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ
remove( ) : next( )๋ก ์ฝ์ด์จ ์์๋ฅผ ์ญ์ ํ๋ค.
public boolean removeMember(int memberID) {
Iterator<Member> ir = arrayList.iterator(); // Iterator ๋ฐํ
while(ir.hasNext()) { // ์์๊ฐ ์๋ ๋์
Member member = ir.next(); // ๋ค์ ํ์์ ๋ฐํ๋ฐ์
int tempId = member.getMemberID();
if (tempId == memberID) { // ํ์ ์์ด๋๊ฐ ๋งค๊ฐ๋ณ์์ ์ผ์นํ๋ฉด
arrayList.remove(member); // ํด๋น ํ์์ ์ญ์
return true;
}
}
System.out.println(memberID + " ๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค."); // ๋๋ ๋๊น์ง ์ญ์ ํ๋ ค๋ ๊ฐ์ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ
return false;
}
์ด๋ ๊ฒ ์์๊ฐ ์๋ ํด๋์ค๋ Iterator๋ฅผ ์ฌ์ฉํ๋ฉด ์์๋ฅผ ์ํํ ์ ์๋ค.
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java-๊ธฐ์ด] Comparable ์ธํฐํ์ด์ค์ Comparator ์ธํฐํ์ด์ค (0) | 2021.02.22 |
---|---|
[Java-๊ธฐ์ด] set ์ธํฐํ์ด์ค (0) | 2021.02.22 |
[Java-๊ธฐ์ด] ArrayList๋ก ์คํ๊ณผ ํ ๊ตฌํํ๊ธฐ (0) | 2021.02.21 |
[Java-๊ธฐ์ด] List ์ธํฐํ์ด์ค (0) | 2021.02.21 |
[Java-๊ธฐ์ด] ์ปฌ๋ ์ ํ๋ ์์ํฌ (0) | 2021.02.21 |
๋๊ธ