# 골격 구현 추상 클래스를 이용한 List 인터페이스 구현 메소드
package Item18;
import java.util.AbstractList;
import java.util.Iterator;
import java.util.List;
public class Main {
public static void main(String[] args) {
int[] i = { 1, 2, 3 };
List<Integer> l = intArrayAsList(i);
// 배열을 넣었지만 get 메소드를 사용할 수 있다.
System.out.println(l.get(1));
System.out.println("\n");
// 배열에 이터레이터를 사용할 수 있다.
Iterator<Integer> itr = l.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
System.out.println("\n");
l.set(2, new Integer(4));
System.out.println(l.get(2));
System.out.println("\n");
l.set(2, 3);
System.out.println(l.get(2));
}
static List<Integer> intArrayAsList(int[] a) {
if (a == null) {
throw new NullPointerException();
}
return new AbstractList<Integer>() {
@Override
public Integer get(int index) {
return a[index]; // Autoboxing
}
@Override
public int size() {
return a.length;
}
@Override
public Integer set(int index, Integer value) {
a[index] = value;
return value;
}
};
}
}
# 결과
2
1
2
3
4
3
댓글 영역