반응형
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 (new MyClass [0]) 또는 .toArray (new MyClass [myList.size ()])?를 참조하십시오.
목록이 올바르게 입력되지 않은 경우 toArray를 호출하기 전에 캐스트를 수행해야합니다. 이처럼 :
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);
}
}
arrayList.toArray(new Custom[0]);
나는 대답을 얻었습니다 ... 이것은 완벽하게 잘 작동하는 것 같습니다
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;
}
@SuppressWarnings("unchecked")
public static <E> E[] arrayListToArray(ArrayList<E> list)
{
int s;
if(list == null || (s = list.size())<1)
return null;
E[] temp;
E typeHelper = list.get(0);
try
{
Object o = Array.newInstance(typeHelper.getClass(), s);
temp = (E[]) o;
for (int i = 0; i < list.size(); i++)
Array.set(temp, i, list.get(i));
}
catch (Exception e)
{return null;}
return temp;
}
견본:
String[] s = arrayListToArray(stringList);
Long[] l = arrayListToArray(longList);
참고 URL : https://stackoverflow.com/questions/5061640/make-arraylist-toarray-return-more-specific-types
반응형
'Programing' 카테고리의 다른 글
Java로 패키지를 어떻게 문서화합니까? (0) | 2020.05.21 |
---|---|
팬더는 헤더없이 테이블에서 읽습니다. (0) | 2020.05.21 |
IGrouping에서 값을 얻는 방법 (0) | 2020.05.21 |
클래스의 JavaScript 클릭 이벤트 리스너 (0) | 2020.05.21 |
두 번째 줄의 CSS 줄임표 (0) | 2020.05.21 |