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
- 도파민형 인간
- 히든 스토리
- 쿠버네티스
- 과제의 분리
- HTML
- CSS
- java
- 비메모리 자원
- 뉴 컨피던스
- 아웃풋법칙
- ESG
- 모두가 기다리는 사람
- 수부타이
- Infresh
- apache kafka
- 공헌감
- sentry
- colllection
- try-with-resources
- kubernetes
- Container
- 이펙티브 자바
- 레퍼런스 복사
- node
- 월칙
- try width resources
- 참조 계수
- 칭기즈칸의 위대한 장군 수부타이
- 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 |