프로그래밍 언어/JAVA

Java에서 List을 Array로 변환하는 방법

Rateye 2021. 11. 16. 10:24
728x90
반응형
질문 : Java에서 목록을 배열로 변환

Java에서 ListArray 로 어떻게 변환 할 수 있습니까?

아래 코드를 확인하십시오.

ArrayList<Tienda> tiendas;
List<Tienda> tiendasList; 
tiendas = new ArrayList<Tienda>();

Resources res = this.getBaseContext().getResources();
XMLParser saxparser =  new XMLParser(marca,res);

tiendasList = saxparser.parse(marca,res);
tiendas = tiendasList.toArray();

this.adaptador = new adaptadorMarca(this, R.layout.filamarca, tiendas);
setListAdapter(this.adaptador);

tiendasList 의 값으로 tiendas 를 채워야합니다.

답변

어느 한 쪽:

Foo[] array = list.toArray(new Foo[0]);

또는:

Foo[] array = new Foo[list.size()];
list.toArray(array); // fill the array

이것은 참조 유형의 배열에 대해서만 작동합니다. 기본 유형 배열의 경우 기존 방식을 사용하십시오.

List<Integer> list = ...;
int[] array = new int[list.size()];
for(int i = 0; i < list.size(); i++) array[i] = list.get(i);

수정:

list.toArray(new Foo[0]); 사용하는 것이 좋습니다. , not list.toArray(new Foo[list.size()]); .

JetBrains Intellij Idea 검사에서 :

컬렉션을 배열로 변환하는 두 가지 스타일이 있습니다. 미리 크기가 지정된 배열 (예 : c.toArray (new String [c.size ()]) ) 또는 빈 배열 (예 : c.toArray (new String [))을 사용합니다. 0]) . 이전 Java 버전에서는 사전 크기 배열을 사용하는 것이 권장되었는데, 적절한 크기의 배열을 생성하는 데 필요한 리플렉션 호출이 상당히 느 렸기 때문입니다. 그러나 OpenJDK 6의 최신 업데이트 이후이 호출이 내재되어 성능이 향상되었습니다. 빈 배열 버전은 미리 크기 조정 된 버전과 비교하여 동일하고 때로는 더 좋습니다. 또한 미리 크기 조정 된 배열을 전달하는 것은 크기toArray 호출간에 데이터 경쟁이 가능하여 추가로 발생할 수있는 데이터 경쟁이 가능하므로 동시 또는 동기화 된 수집에 위험합니다. 컬렉션이 작업 중에 동시에 축소 된 경우 배열 끝에 null이 표시됩니다.이 검사를 통해 균일 한 스타일을 따를 수 있습니다. 빈 배열 (최신 Java에서 권장 됨)을 사용하거나 크기가 미리 지정된 배열을 사용합니다. 이전 Java 버전 또는 비 HotSp에서 더 빠름 ot 기반 JVM).

사전 크기 배열을 사용하는 이전 Java 버전에서는 적절한 크기의 배열을 만드는 데 필요한 리플렉션 호출이 매우 느리기 때문에 권장되었습니다. 그러나 OpenJDK 6의 최신 업데이트 이후이 호출이 내재되어 빈 어레이 버전의 성능이 미리 크기 조정 된 버전과 비교하여 동일하고 때로는 더 나아졌습니다. 또한 사전 크기 배열을 전달하는 것은 크기toArray 호출 사이에 데이터 경쟁이 가능하기 때문에 동시 또는 동기화 된 수집에 위험합니다.이 경우 수집이 작업 중에 동시에 축소 된 경우 배열 끝에 추가 null이 발생할 수 있습니다.

이 검사를 사용하면 빈 배열 (최신 Java에서 권장 됨)을 사용하거나 사전 크기 배열 (이전 Java 버전 또는 HotSpot 기반이 아닌 JVM에서 더 빠를 수 있음)을 사용하여 균일 한 스타일을 따를 수 있습니다.

출처 : https://stackoverflow.com/questions/9572795/convert-list-to-array-in-java
728x90
반응형