Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 상속
- 자바 조합 재귀
- parseInt()
- 순열코드
- 알고리즘
- 재귀
- 재귀함수
- 알고리즘 그래프
- 서로소
- 자바 재귀 조합
- java lambda
- 자바스크립트 이벤트중지
- 자바입출력
- 후위표기
- jquery 이벤트 처리
- inner class
- jquery 필터선택자
- 자바스크립트 이벤트처리
- char to str
- jquery dom 계층 선택자
- str to char array
- 순열 재귀
- 자바 순열 코드
- java Collections.sort()
- jquery 속성선택자
- java 내부 클래스
- Java
- 자바
- 조합 재귀
- Interface
Archives
- Today
- Total
유블로그
[Java] Iterator 본문
대부분의 Collection Class 들은 iterator interface 를 구현한다.
Iterator 의 method들을 통해서 Collection의 각 객체에 접근할 수 있다.
데이터를 처음부터 끝까지 보려고할 때 쓰는 게 좋다.
< Iterator Methods >
boolean hasNext() | 현재 위치에 데이터가 있는 지 판단(true/false) |
E next() | 실제 데이터 가져오기 + 위치값 조정(+1) |
remove() | 마지막 가져온 데이터위치의 데이터 삭제 |
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()) {
Integer a = iter.next();
System.out.println(a);
}
for 문으로 순회하다가 List 요소 삭제하면 list.size()에서 오류날 수 있으니 iterator에서 list.remove() 사용하는 것이 좋다.
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test01 {
/**
* Iterator 이해하기
*
* hasNext() : 현재 위치에 데이터가 있는지 판단(true/false)
* next() : 실제 데이터 가져오기 + 위치값 조정(+1)
* remove() : 마지막 가져온 데이터의 위치 데이터 삭제
*/
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
Iterator<Integer> ite = list.iterator();
while (ite.hasNext()) {
System.out.println(ite.next());
ite.remove();
}
System.out.println(list);
/*
for (int i = list.size() - 1; i >= 0; i--) {
list.remove(i);
}
System.out.println(list);
*/
/*
for (int i = 0; i < list.size(); i++) {
list.remove(i);
}
System.out.println(list);
*/
/*
Iterator<Integer> ite = list.iterator();
while( ite.hasNext() ) {
System.out.println(ite.next());
}
*/
// 1.5 부터 제공
// 위치를 활용해야 한다면...
// 별도의 위치 관련 변수 추가
/*
int loc = 0;
for (int data : list) {
System.out.println(data);
// 리스트의 데이터가 변경되지는 않는다.
data = 100;
loc++;
}
*/
/*
// 1.4 까지 주로 사용
for (int i = 0; i < list.size(); i++) {
// int = Integer // AutoUnBoxing(기 = 참), AutoBoxing(참 = 기)
int data = list.get(i);
System.out.println(data);
}
*/
}
}
'Java' 카테고리의 다른 글
[Java] Abstract, Interface (0) | 2020.08.12 |
---|---|
[Java] 예외(Exception) (0) | 2020.08.11 |
[Java] Collections (+Generic) (0) | 2020.08.11 |
[Java] Inner class (0) | 2020.08.10 |
[Java] Interface - 추상화 (0) | 2020.08.10 |