Wie wandelt man eine Sammlung in ein Array?

Eine Sammlung, Collection, kann durch die Methoden Collection.toArray() und Collection.toArray(Object[] o) einfach in ein Array gewandelt werden.

Die Unterschiede beider Methoden bestehen in den Parametern und den Rückgabetypen. Wie im Beispiel zu sehen liefert Collection.toArray() ein Object-Array, das in der Größe der Größe der Sammlung entspricht.
Die Methode Collection.toArray(Object[] o) verlangt als Parameter ein Array des Typs der zu speichernden Elemente. Dessen Größe ist hierbei unerheblich: Ist das übergebene Array zu klein, wird ein neues, passendes des gleichen Typs erstellt, ist es zu groß, werden die verbleibenden Positionen nach hinten mit null aufgefüllt.


import java.util.LinkedList;
import java.util.List;

public class CollectionToArray {

    public static void main(String[] args) {
        List<String> list = new LinkedList<String>();
        list.add("eins");
        list.add("zwei");
        list.add("drei");
        
        Object[] objArr = list.toArray();
        
        String[] str = new String[0];
        String[] strArr = list.toArray(str);
        
        for(Object o : objArr){
            System.out.println("Object: " + o);
        }
        for(String s : strArr){
            System.out.println("String: " + s);
        }
        
        System.out.println("Object[] == String[]: " + (objArr == strArr));            // false
        System.out.println("Object[0] == String[0]: " + (objArr[0] == strArr[0]));    // true
    }
}

Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.