peacekim
할 수 있는 것과 할 수 없는 것.
peacekim
전체 방문자
오늘
어제
  • 분류 전체보기 (68)
    • 👨‍🏫ps (44)
      • ❄️프로그래머스 (20)
      • 🔟0️⃣백준 (21)
      • leetcode (3)
    • ✍🏻study (20)
      • 👐java (6)
      • 🍃spring (1)
      • 🥇algorithm (0)
      • 🚘oodp (4)
      • 📒 jpa (3)
      • 👣DB (2)
      • 🌂네트워크 (0)
      • 🎸기타 (3)
      • 👊 kotlin (1)
      • 🫥 jvm (0)
    • 📽project (4)
      • 🎀ReBoN (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
peacekim

할 수 있는 것과 할 수 없는 것.

✍🏻study/👐java

Java Collection Framework 공부하기 Part 3

2022. 3. 2. 00:53
반응형

🙌 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편 - 남궁성

반응형

'✍🏻study > 👐java' 카테고리의 다른 글

Java Collection Framework 공부하기 Part 6.  (0) 2022.03.02
Java Collection Framework 공부하기 Part 5.  (0) 2022.03.02
Java Collection Framework 공부하기 Part 2.  (0) 2022.03.02
Java Collection Framework 공부하기 Part 4.  (0) 2022.03.02
Java Collection Framework 공부하기 Part 1  (0) 2022.03.02
    '✍🏻study/👐java' 카테고리의 다른 글
    • Java Collection Framework 공부하기 Part 5.
    • Java Collection Framework 공부하기 Part 2.
    • Java Collection Framework 공부하기 Part 4.
    • Java Collection Framework 공부하기 Part 1
    peacekim
    peacekim
    할 수 있는 것과 할 수 없는 것. github: https://github.com/PyeongGangKim

    티스토리툴바