Heim >Java >javaLernprogramm >Wie hat sich das Verhalten von „Arrays.asList()' in Java seit Version 1.4.2 geändert?

Wie hat sich das Verhalten von „Arrays.asList()' in Java seit Version 1.4.2 geändert?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-06 05:36:15253Durchsuche

How Has the Behavior of `Arrays.asList()` Changed in Java Since Version 1.4.2?

Arrays in Listen in Java: sich entwickelndes Verhalten

In Java ist das Konvertieren von Arrays in Listen eine häufige Aufgabe. Das Verhalten der Arrays.asList()-Methode hat jedoch seit Java SE 1.4.2 erhebliche Änderungen erfahren.

Verhalten vor Java 1.5

Vor Java 1.5, Arrays.asList() hat eine Liste zurückgegeben, die die tatsächlichen Elemente des Arrays enthält. Zum Beispiel:

int[] numbers = { 1, 2, 3 };
List<Integer> list1 = Arrays.asList(numbers);

In diesem Fall würde list1 die Elemente 1, 2 und 3 enthalten.

Verhalten in Java 1.5 und höher

Ab Java 1.5 hat sich das Verhalten von Arrays.asList() geändert. Es gibt jetzt eine Liste fester Größe zurück, die einen Verweis auf das ursprüngliche Array enthält. Als Ergebnis:

int[] numbers = { 1, 2, 3 };
List<Integer> list2 = Arrays.asList(numbers);

In diesem Fall würde list2 ein einzelnes Element enthalten: die Array-Nummern selbst.

Grund für die Änderung

Die Verhaltensänderung wurde vorgenommen, um die Typsicherheit durchzusetzen. Da Listen keine primitiven Typen wie int enthalten können, muss die zurückgegebene Liste vom Typ List sein.

Auswirkungen auf vorhandenen Code

Code, der vor Java 1.5 geschrieben wurde Das alte Verhalten von Arrays.asList() muss möglicherweise geändert werden. Beispielsweise würde die folgende Behauptung in Java 1.5 und höher fehlschlagen:

Assert.assertTrue(Arrays.asList(numbers).indexOf(4) == -1);

Arrays in Listen primitiver Typen konvertieren

So konvertieren Sie ein Array primitiver Typen in Um eine Liste der entsprechenden Wrapper-Klasse zu erstellen, können Sie die folgende Technik verwenden:

Integer[] numbers = new Integer[] { 1, 2, 3 };
List<Integer> list = Arrays.asList(numbers);

Dadurch wird eine Liste erstellt Ganzzahlige Objekte, die die Werte des Arrays enthalten.

Das obige ist der detaillierte Inhalt vonWie hat sich das Verhalten von „Arrays.asList()' in Java seit Version 1.4.2 geändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn