티스토리 뷰

Java

Effective Java - Item 18

techbard 2016.07.23 23:30



# 골격 구현 추상 클래스를 이용한 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



댓글
댓글쓰기 폼
공지사항
Total
394,931
Today
2
Yesterday
28
«   2018/11   »
        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  
글 보관함