본문 바로가기
자바

java에서 목록을 배열로 변환합니다

by º기록 2021. 4. 7.
반응형

list 을 Java에서 배열 로 변환 할 수 있습니까?

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

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 아이디어 검사 :

컬렉션을 배열로 변환하는 두 가지 스타일이 있습니다. a pre-sized array (like c.toArray(new String[c.size()])) or

에 older Java versions using pre-sized array was recommended, as the reflection call which is necessary to create an array of proper size was quite slow. However since late updates of OpenJDK 6 this call was intrinsified, making the performance of the empty array version the same and sometimes even better, compared to the pre-sized version. Also passing pre-sized array is dangerous for a concurrent or synchronized collection as a data race is possible between the size and toArray call which may result in extra nulls at the end of the array, if the collection was concurrently shrunk

이 검사는 다음을 따를 수 있습니다

uniform style: either using an empty array (which is recommended in modern Java) or using a pre-sized array (which might be faster in 이전 Java 버전 또는 비 핫스팟 기반 JVMS).

 

참조 페이지 https://stackoverflow.com/questions/9572795

 

 

반응형

댓글