반응형
arrayList.toArray()가 보다 구체적인 유형을 반환하도록 합니다.
그래서 보통ArrayList.toArray()
의 일종을 반환하다Object[]
....하지만 아마...Arraylist
물건의Custom
, 어떻게 하면toArray()
돌려보내다Custom[]
보다는Object[]
?
다음과 같이 합니다.
List<String> list = new ArrayList<String>();
String[] a = list.toArray(new String[0]);
Java6 이전에는 다음과 같이 기술하는 것이 권장되었습니다.
String[] a = list.toArray(new String[list.size()]);
내부 실장에서는 적절한 크기의 어레이가 재할당되기 때문에 미리 실행하는 것이 좋습니다.Java6에서는 빈 배열이 권장되므로 .toArray(새로운 MyClass[0]) 또는 .toArray(새로운 MyClass[myList.size()])를 참조하십시오.
목록이 제대로 입력되지 않은 경우 Array에 전화를 걸기 전에 캐스트를 수행해야 합니다.다음과 같이 합니다.
List l = new ArrayList<String>();
String[] a = ((List<String>)l).toArray(new String[l.size()]);
꼭 돌아올 필요는 없다.Object[]
예를 들어 다음과 같습니다.
List<Custom> list = new ArrayList<Custom>();
list.add(new Custom(1));
list.add(new Custom(2));
Custom[] customs = new Custom[list.size()];
list.toArray(customs);
for (Custom custom : customs) {
System.out.println(custom);
}
여기 있습니다.Custom
클래스:-
public class Custom {
private int i;
public Custom(int i) {
this.i = i;
}
@Override
public String toString() {
return String.valueOf(i);
}
}
List를 특정 유형의 배열로 변환하는 짧은 버전(예: Long):
Long[] myArray = myList.toArray(Long[]::new);
(Java 11에서 사용 가능)
arrayList.toArray(new Custom[0]);
public static <E> E[] arrayListToTypedArray(List<E> list) {
if (list == null) {
return null;
}
int noItems = list.size();
if (noItems == 0) {
return null;
}
E[] listAsTypedArray;
E typeHelper = list.get(0);
try {
Object o = Array.newInstance(typeHelper.getClass(), noItems);
listAsTypedArray = (E[]) o;
for (int i = 0; i < noItems; i++) {
Array.set(listAsTypedArray, i, list.get(i));
}
} catch (Exception e) {
return null;
}
return listAsTypedArray;
}
정답을 맞혔는데...이것은 완벽하게 잘 작동하고 있는 것 같다
public int[] test ( int[]b )
{
ArrayList<Integer> l = new ArrayList<Integer>();
Object[] returnArrayObject = l.toArray();
int returnArray[] = new int[returnArrayObject.length];
for (int i = 0; i < returnArrayObject.length; i++){
returnArray[i] = (Integer) returnArrayObject[i];
}
return returnArray;
}
언급URL : https://stackoverflow.com/questions/5061640/make-arraylist-toarray-return-more-specific-types
반응형
'programing' 카테고리의 다른 글
체크된 예외에 대한 사례 (0) | 2022.06.03 |
---|---|
Vuex의 데이터 프로펠러 상태/게터 통과 방법 (0) | 2022.06.03 |
중첩된 데이터와 v-slot이 있는 데이터 테이블 Vuetify: 항목 (0) | 2022.06.03 |
Vuex에서 namesthed mapGetter의 이름을 변경하는 방법 (0) | 2022.06.03 |
SVG가 vue-svg-loader를 로드하고 있습니다.[ Vue warn ] :잘못된 구성 요소 정의 (0) | 2022.06.03 |