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 | 31 |
Tags
- 뉴 컨피던스
- 공헌감
- Container
- 모두가 기다리는 사람
- 월칙
- HTML
- kubernetes
- colllection
- ESG
- 부자의그릇
- CSS
- 아웃풋법칙
- try-with-resources
- try width resources
- 쿠버네티스
- 참조 계수
- 비메모리 자원
- 이펙티브 자바
- 히든 스토리
- node
- java
- apache kafka
- 수부타이
- 레퍼런스 복사
- 과제의 분리
- sentry
- 도파민형 인간
- Infresh
- docker
- 칭기즈칸의 위대한 장군 수부타이
Archives
- Today
- Total
Hi
Iterator 본문
Iterator
Iterable와 Iterator
Iterable 를 상속하는 클래스 안에 내부클래스로 Iterator를 상속하는 클래스를 만들면 좋다.
import java.util.Iterator;
class CountDown implements Iterable<Integer> {
private int n;
public CountDown(int n) {
this.n = n ;
}
@Override
public Iterator<Integer> iterator() {
return new CountDownIterator(n);
}
// inner class vs nested class
// => 구체적인 타입을 감출 수 있다.
private class CountDownIterator implements Iterator<Integer> {
private int n;
CountDownIterator(int n) {
this.n = n;
}
@Override
public boolean hasNext() {
System.out.println("hasNext()");
return n >= 0;
}
@Override
public Integer next() {
System.out.println("next()");
return n--;
}
}
}
public class Sample_0327 {
public static void main(String[] args) {
// Integer i = new Integer(42);
// Integer j = Integer.valueOf(42);
CountDown c = new CountDown(5);
for (Integer e : c) {
System.out.println(e);
}
// Iterator<Integer> iterator = c.iterator(); // Iterable
// while (iterator.hasNext()) {
// System.out.println(iterator.next());
// }
}
}
'Programming > Java' 카테고리의 다른 글
스택을 만들어보자 (0) | 2018.03.29 |
---|---|
Iterator의 순회 (0) | 2018.03.28 |
추상클래스와 인터페이스의 차이점 (0) | 2018.03.28 |
SOLID (0) | 2018.03.28 |
컴퓨터 네트워크 (0) | 2018.03.28 |