ArrayList의 Iterator 부분을 건너뛰고 LinkedList를 학습했었다 ㄸㅣ로리!!
그래가꼬 다시 여기로 돌아왔다
ArrayList의 Iterator는 어떤 구조로 동작하게 되는지 학습 꼬
배울 것: ArrayList.ListIterator 클래스와 next() hasNext() previous() hasPrevious()
ArrayList.ListIterator 클래스
ArrayList객체의 어떤 반복적인 작업을 처리하기 위해서는
ListIterator라는 객체가 필요하다.
이 객체를 리턴하는 메소드가 저 맨 오른쪽에 있는 listIterator()
웅웅 저 메소드를 호출하면 새로운 ListIterator객체를 만들어서 리턴하게 된다.
그럼 이제 ListIterator클래스를 작성해보자.
더보기
![](https://blog.kakaocdn.net/dn/bKsYSP/btqG3k33Gx3/b1UTNK3KI2y5TAF0KFr041/img.png)
![](https://blog.kakaocdn.net/dn/bKsYSP/btqG3k33Gx3/b1UTNK3KI2y5TAF0KFr041/img.png)
실행클래스에서 이렇게 작성하면, ArrayList의 첫번째 노드가 갖고있는 값인 10을 리턴하도록 next()메소드를 작성해보자. 그리고 또 next()하면 그 다음노드 값, 또하면 다음, 다음... 값을 리턴하도록
아래 코드는 next()메소드이다.
next()메소드가 호출될 때마다 nextIndex값을 1씩 증가시킴으로써 다음값, 다음값, 다음값, ... 을 가져올 수 있도록 하는 구조이다.
그리고 hasNext()는 다음과 같은 구조
nextIndex와 size값을 비교해서 더 가져올 수 있는 것이 있는지 판단할 수 있다.
previous(), hasPrevious의 구조
add()
remove()
이것도 마찬가지
반응형
'자료구조 + 알고리즘' 카테고리의 다른 글
드디어!! (0) | 2020.12.23 |
---|---|
[자료구조] ArrayList 구현 - remove, removeFirst, removeLast [JAVA] (0) | 2020.08.21 |
[자료구조] LinkedList 구현 - ListIterator 클래스 [JAVA] (0) | 2020.08.20 |
[자료구조] LinkedList 구현 - size, get, indexOf 메소드 [JAVA] (0) | 2020.08.20 |
[자료구조] LinkedList 구현 - remove, removeFirst, removeLast [JAVA] (0) | 2020.08.20 |