CodeGym /Java-Blog /Random-DE /Arrays.asList()-Methode in Java
Autor
Volodymyr Portianko
Java Engineer at Playtika

Arrays.asList()-Methode in Java

Veröffentlicht in der Gruppe Random-DE
Viele Anfänger verwechseln das Konzept der Methode Arrays.asList() mit der Datenstruktur ArrayList. Auch wenn sie ähnlich aussehen und klingen mögen, unterscheiden sich diese beiden völlig, wenn es um die Umsetzung geht. In diesem Beitrag behandeln wir die grundlegende Verwendung der Methode Arrays.asList() und klären einige damit verbundene vorherrschende Verwirrungen auf.

Warum wird Arrays.asList() verwendet?

Wenn Sie ein Array haben, das Sie in eine Liste umwandeln müssen, stellt java.util.Arrays einen Wrapper Arrays.asList() zur Verfügung , der diesen Zweck erfüllt. Mit einfachen Worten: Diese Methode verwendet ein Array als Parameter und gibt eine Liste zurück. Große Teile der Java-Plattform-API wurden vor der Einführung des Collections-Frameworks entwickelt. Daher kann es gelegentlich erforderlich sein, zwischen traditionellen Arrays und moderneren Sammlungen zu übersetzen. Diese Funktion dient als Verbindung zwischen Sammlungen und Array-basierten APIs.Arrays.asList()-Methode in Java - 1

Beispiel

Schauen Sie sich das folgende Beispiel an:

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;

public class ArraysAsListDemo {
    public static void main(String[] args) {

	String[] teamMembers = {"Amanda", "Loren", "Keith"};
      // using aslist() method
	List teamList = Arrays.asList(teamMembers);
	System.out.println("List : " + teamList);
		
	HashSet teamHashSet = new HashSet<>(Arrays.asList(teamMembers));
	System.out.println("HashSet : " + teamHashSet);
    }
}
Ausgang:
Liste: [Amanda, Loren, Keith] HashSet: [Keith, Loren, Amanda] // HashSet hält die Reihenfolge nicht aufrecht

Wie unterscheiden sich Arrays.asList() und ArrayList?

Wenn Sie die Methode Arrays.asList() für ein Array aufrufen, ist das zurückgegebene Objekt keine ArrayList (eine skalierbare Array- Implementierung der List- Schnittstelle). Es handelt sich um ein Ansichtsobjekt mit den Methoden get() und set() , die auf das zugrunde liegende Array zugreifen. Alle Methoden, die die Größe des Arrays ändern würden, wie etwa add() oder remove() des zugehörigen Iterators, lösen eine UnsupportedOperationException aus . Der Grund dafür, dass ein Java-Programm erfolgreich kompiliert wird, aber eine Laufzeitausnahme auslöst, liegt darin, dass als Ergebnis offenbar eine „Liste“ zurückgegeben wirdArrays.asList() . Wo alle Hinzufügungs-/Löschvorgänge zulässig sind. Da es sich bei der zugrunde liegenden Datenstruktur jedoch um ein nicht veränderbares „Array“ handelt , wird zur Laufzeit eine Ausnahme ausgelöst. Hier ist ein Ausschnitt, der zeigt, wie es aussieht:

import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
   public static void main(String[] args) {
	Integer[] diceRoll = new Integer[6];	
      //using aslist() method
	List diceRollList = Arrays.asList(diceRoll);
	System.out.println(diceRollList);
	
	// using getters and setters to randomly access the list	
	diceRollList.set(5, 6);	
	diceRollList.set(0, 1);	
	System.out.println(diceRollList.get(5));
	System.out.println(diceRollList.get(1));

	System.out.println(diceRollList);
	
	diceRollList.add(7); // Add a new Integer to the list
    }
}
Ausgang:
[null, null, null, null, null, null] 6 null [1, null, null, null, null, 6] Ausnahme im Thread „main“ java.lang.UnsupportedOperationException bei java.util.AbstractList.add(AbstractList. java:148) bei java.util.AbstractList.add(AbstractList.java:108) bei ArraysAsListDemo.main(ArraysAsListDemo.java:20)

Beispiele für die Verwendung der asList()-Methode

Ab Java SE 5.0 ist die Methode asList() so deklariert, dass sie eine variable Anzahl von Argumenten hat. Anstatt ein Array zu übergeben, können Sie auch einzelne Elemente übergeben. Zum Beispiel:

import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
    public static void main(String[] args) {
	List seasons = Arrays.asList("winter", "summer", "spring", "fall");
	List odds = Arrays.asList(1, 3, 5, 7, 9);

	System.out.println(seasons);
	System.out.println(odds);
    }
}
Ausgang:
[Winter, Sommer, Frühling, Herbst] [1, 3, 5, 7, 9]

Abschluss

Um Arrays.asList() verwenden zu können , müssen Sie bedenken, dass es sich lediglich um eine Wrapper-Methode für Ihr eigenes Dienstprogramm handelt. Verwechseln Sie es nicht mit ArrayList und denken Sie daran, dass es eine „Liste“ zurückgibt. Anfänglich kann es bei der Ausführung von Additions-/Entfernungsfunktionen zu Fehlern kommen, diese verschwinden jedoch durch konsequentes Üben und Verständnis. Also greifen Sie zu Ihrer IDE und erleben Sie ein großartiges Lernerlebnis!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION