Heim >Java >javaLernprogramm >Wie konvertiere ich ein Java-Array korrekt in eine ArrayList?
Array in ArrayList in Java konvertieren
In Java kann der Prozess der Konvertierung eines Arrays in eine ArrayList manchmal verwirrend sein, insbesondere wenn man darüber nachdenkt die in Java SE 1.4.2 eingeführten Änderungen. Dieser Artikel befasst sich mit den Feinheiten dieser Konvertierung und bietet ein umfassendes Verständnis der verfügbaren Optionen.
Ursprünglich ermöglichte die Methode Arrays.asList() die Erstellung einer ArrayList mit den Elementen eines Arrays. Dieses Verhalten wurde jedoch in Java SE 1.5.0 geändert, was dazu führte, dass die ArrayList stattdessen das Array selbst enthielt.
Bedenken Sie beispielsweise die folgenden Codeausschnitte:
Java SE 1.4 .2
int[] numbers = new int[] { 1, 2, 3 }; java.util.List<Integer> list = Arrays.asList(numbers);
Java SE 1.5.0
int[] numbers = new Integer[] { 1, 2, 3 }; java.util.List<Integer> list = Arrays.asList(numbers);
Der bemerkenswerte Unterschied liegt in der Art der erstellten ArrayList. In 1.4.2 ist list eine ArrayList, die die Ganzzahlwerte 1, 2 und 3 enthält. In 1.5.0 ist list eine ArrayList, die die Array-Nummern enthält.
Diese Unterscheidung kann zu unerwarteten Ergebnissen führen, wie z :
Assert.assertTrue(list.indexOf(4) == -1);
Während diese Behauptung in 1.4.2 gilt, schlägt sie in 1.5.0 fehl, weil die Liste jetzt enthält die Array-Nummern, nicht die Integer-Werte.
Um solche Probleme zu vermeiden und eine ArrayList mit Integer-Werten zu erhalten, besteht eine Lösung darin, die Integer-Klasse zu verwenden, die den primitiven int-Typ umschließt:
Integer[] numbers = new Integer[] { 1, 2, 3 }; java.util.List<Integer> list = Arrays.asList(numbers);
Durch die Verwendung der Integer-Klasse erstellt diese Konvertierung eine ArrayList, die die gewünschten Integer-Werte enthält.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein Java-Array korrekt in eine ArrayList?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!