상세 컨텐츠

본문 제목

Effective Java - Item 18

Java

by techbard 2016. 7. 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



반응형

관련글 더보기

댓글 영역