ListToArray.java
//ArrayList-Generierung
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("A");
arrayList.add("B");
arrayList.add("C");
String[] array = (String[])arrayList.toArray();
System.out.println("ArrayList = " + arrayList.toString());
System.out.println("Array= " + Arrays.toString(array));
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
Versuchen Sie, die Klasse zur Rückkehr zu bewegen
ListToArray.java
//ArrayList-Generierung
//Unterlassung
System.out.println(arrayList.toArray().getClass());
class [Ljava.lang.Object;
Das Objekttyp-Array wird zurückgegeben. .. ..
ListToArray.java
//ArrayList-Generierung
//Unterlassung
//0 für die Anzahl der Elemente im Array oder in der ArrayList.size()Einstellen
String[] array = arrayList.toArray(new String[arrayList.size()]);
//String[] array = arrayList.toArray(new String[0]);* Die Verarbeitung wird langsamer sein (später beschrieben)
System.out.println("ArrayList = " + arrayList.toString());
System.out.println("Array= " + Arrays.toString(array));
ArrayList = [A, B, C]
Array= [A, B, C]
java:java.util.ArrayList.class
public <T> T[] toArray(T[] a) {
if (a.length < size)
return (T[]) Arrays.copyOf(elementData, size, a.getClass());
System.arraycopy(elementData, 0, a, 0, size);
if (a.length > size)
a[size] = null;
return a;
}
System.arraycopy(elementData, 0, a, 0, size); Ich habe String [] so kopiert, wie er war. Wenn es sich um ~~ new String [0] handelt, wird es in Arrays.copyOf (3. Zeile) eingegeben und die Verarbeitung ist langsam, da die Elemente einzeln kopiert werden. ~~ Aktualisiert am 29.04.2020
Ich habe versucht, die Bearbeitungszeit zu überprüfen [Java] ArrayList → Soll ich die Größe für die Array-Konvertierung angeben
Im Argument toArray kann nur der in der Konvertierungsquelle ArrayList
Recommended Posts