2012-08-26 2 views
0

내가 int 배열을 복용하는 기능을 가지고 필요가 배열 그래서 list.addAll(Arrays.asList(array));int []를 java에서 Integer []로 바꾸는 방법?

그러나 listArrayList<Integer> 때문에 사용

ArrayList에 넣어 것으로는 addAllInteger[] 대신 int[]

을 받아 프리미티브 배열을 Integer Object 배열로 어떻게 상자해야합니까?

+0

원시 목록의 요소를 반복하고 객체를 설정 한 다음 두 번째 목록에 추가합니다. –

+0

'List .addAll'은'Integer []'도'int []'도 허용하지 않습니다. – oldrinb

+0

@veer sry 나는 asList 메쏘드를 의미했다 : P – NSF

답변

3

당신은 아파치 코 몬즈에서 ArrayUtils를 사용할 수 있습니다

Integer[] integerArray = ArrayUtils.toObject(intArray); 

을,이에서에 따라야 할 List<Integer>을 만들려면 사용할 수 있습니다

List<Integer> integerList = Arrays.asList(ArrayUtils.toObject(intArray)); 
+2

'int []'를 동등한'Integer []'로 변환하고,'list.addAll'을 할 때만 모두를 복사하기 위해서'Arrays.asList'를 통해 래핑하는 것은 중요하지 않다. – oldrinb

+0

@ 그들이 별개의 코드이며 관련 코드가 아닙니다 –

+0

@MichaelBuen 나는 당신의 요지를 잘 모르겠습니다. 필자는'list.addAll (Arrays.asList (ArrayUtils.toObject (array)));가 무엇을 설명했다. 별도의 코드는 무엇입니까? 아파치 커먼즈가 별도의 라이브러리라는 것을 밝히고 있다면, 저는 그것을 잘 알고 있습니다. – oldrinb

1

int 배열을 반복하고 새로운 Integer 개체를 인스턴스화하고 ArrayList에 배치합니다. 당신은 프리미티브에만 적용되기 때문에 autoboxing을 사용할 수 없습니다. 배열은 기본 유형이 아닙니다.

2
static void addAll(final Collection<Integer> collection, final int[] v) { 
    for (final int i : v) { 
    collection.add(i); 
    } 
} 
... 
addAll(list, array); 
0

당신이 Guava이있는 경우 사용할 수 있습니다

list.addAll(Ints.asList(array)); 

... 그런데 아파치 커먼즈 기법보다 불필요한 객체를 적게 만듭니다. (구체적으로는 Integer[]을 만드는 귀찮게하지 않습니다, 그것은 단지 int[]List<Integer>보기를 돌아갑니다.)

공시 : 나는 구아바에 기여한다.

관련 문제