Konvertieren einer Sammlung in eine Liste in Java

Dhruvdeep Singh Saini 12 Oktober 2023
  1. Verwendung eines Konstruktors zur Umwandlung einer Sammlung in eine Liste in Java
  2. Verwenden Sie integrierte Funktionen, um eine Sammlung in Java in eine Liste umzuwandeln
  3. Verwendung der for-Schleife zur Umwandlung einer Sammlung in eine Liste in Java
  4. Verwenden Sie collect, um die Sammlung in Java in eine Liste umzuwandeln
Konvertieren einer Sammlung in eine Liste in Java

In diesem Artikel werden die verschiedenen Methoden zum Konvertieren einer Sammlung in eine Liste in Java vorgestellt und erläutert.

Verwendung eines Konstruktors zur Umwandlung einer Sammlung in eine Liste in Java

Wir können die Konstruktorfunktion verwenden und die Sammlung, die wir konvertieren möchten, im Parameter bereitstellen.

Syntax:

List<Generic> listname = new ArrayList<>(collectionName);

Beispiel:

import java.util.*;
public class ExpHStoLL {
  public static void main(String[] args) {
    Set<String> hs = new HashSet<String>();
    // Adding names in hs
    hs.add("Dhruv");
    hs.add("Sahil");
    hs.add("Ajay");
    System.out.println("Hash Set Collection :" + hs);

    // Using constructor of hs for linked list
    List<String> MyList = new LinkedList<String>(hs);
    System.out.println("\nLinked List after conversion: " + MyList);
  }
}

Ausgabe:

Hash Set Collection :[Dhruv, Sahil, Ajay]
Linked List after conversion: [Dhruv, Sahil, Ajay]

Hier haben wir ein Hash-Set von Namen erstellt und dann mit dem Konstruktor hs eine Liste aus dem Hash-Set erstellt.

Verwenden Sie integrierte Funktionen, um eine Sammlung in Java in eine Liste umzuwandeln

Es gibt zwei eingebaute Methoden zum Konvertieren einer Sammlung in eine Liste in den Klassen Array und Collections.

Verwendung von asList zur Umwandlung einer Sammlung in eine Liste in Java

Die Klasse Array stellt die Methode asList() zur Verfügung, um eine Array-Sammlung in eine Liste umzuwandeln.

Syntax:

List<Generic> MyList = Arrays.asList(ArrayName);

Beispiel:

import java.util.*;
public class ExpArrtoL {
  public static void main(String args[]) {
    String[] MyArray = {"Dhruv", "Sahil", "Ajay"};
    System.out.println("My Array: " + Arrays.toString(MyArray));

    // Using asList function
    List<String> MyList = Arrays.asList(MyArray);
    System.out.println("List using asList(): " + MyList);
  }
}

Ausgabe:

My Array: [Dhruv, Sahil, Ajay]
List using asList(): [Dhruv, Sahil, Ajay]

Im obigen Code haben wir ein Array erstellt und dann die Funktion asList() mit dem Arraynamen MyArray als Argument verwendet, um die Sammlung in eine Liste umzuwandeln.

Verwendung von addAll zur Umwandlung einer Sammlung in eine Liste in Java

addAll() ist eine im Collections-Framework bereitgestellte Methode, mit der wir eine Collection in eine Liste umwandeln können. Die Elemente aus der Sammlung können einzeln oder als Array angegeben werden.

Dies ähnelt der Methode asList(), ist jedoch leistungsfähiger und verbessert effektiv die Zeitkomplexität. Wir müssen sowohl ein Array als auch eine Liste erstellen, bevor wir diese Methode verwenden, da zwei Parameter erforderlich sind, um Elemente aus der Sammlung in die Liste zu kopieren.

Syntax:

Collections.addAll(ListName, ArrayName);

Beispiel:

import java.util.*;
public class ExpArrtoL {
  public static void main(String args[]) {
    String[] MyArray = {"Dhruv", "Sahil", "Ajay"};
    System.out.println("My Array: " + Arrays.toString(MyArray));
    List<String> MyList = new ArrayList<>();

    // Using addAll function
    Collections.addAll(MyList, MyArray);
    System.out.println("List using addAll(): " + MyList);
  }
}

Ausgabe:

My Array: [Dhruv, Sahil, Ajay]
List using addAll(): [Dhruv, Sahil, Ajay]

Verwendung der for-Schleife zur Umwandlung einer Sammlung in eine Liste in Java

Wenn wir keinen Konstruktor oder eingebaute Funktionen verwenden möchten, kann die for-each-Schleife helfen, eine Sammlung in eine Liste umzuwandeln. Diese Methode ist für Anfänger geeignet, da sie eine einfache Möglichkeit der Konvertierung bietet.

Beispiel:

import java.util.*;
public class ListUsingForLoop {
  public static void main(String[] args) {
    Set<String> hs = new HashSet<String>();
    hs.add("Dhruv");
    hs.add("Sahil");
    hs.add("Ajay");
    System.out.println("Our HashSet HS:" + hs);

    // List of the same size as our HashSet hs
    List<String> MyList = new ArrayList<String>(hs.size());

    // The loop picks each string of HS and adds it to the List
    for (String x : hs) MyList.add(x);
    System.out.println("\nList made from HS:" + MyList);
  }
}

Ausgabe:

Our HashSet HS:[Dhruv, Sahil, Ajay]

List made from HS:[Dhruv, Sahil, Ajay]

Hier haben wir einen HashSet von Namen erstellt und sie für jede Schleife verwendet, um anzugeben, dass wir für jeden im HashSet hs gefundenen String den String zu unserer Liste MyList hinzufügen.

Verwenden Sie collect, um die Sammlung in Java in eine Liste umzuwandeln

Wir können auch die Funktion collect() des Streams verwenden, um eine Sammlung in eine Liste umzuwandeln und ein Ergebnis anzuzeigen, ohne unsere ursprüngliche Sammlung zu bearbeiten.

Die Methode collect() sammelt Elemente aus Datenstrukturen oder Sammlungen und stellt zusätzliche Logik für deren Bearbeitung bereit.

Syntax:

List<Generic> ListName = CollectionName.stream().collect(toList());

Beispiel:

import java.util.*;
import java.util.stream.*;
public class ExpHStoLL {
  public static void main(String[] args) {
    Set<String> hs = new HashSet<String>();
    // Adding names in hs
    hs.add("Dhruv");
    hs.add("Sahil");
    hs.add("Ajay");
    System.out.println("Hash Set Collection :" + hs);

    List<String> MyList = hs.stream().collect(Collectors.toList());
    System.out.println("\nConverted to List: " + MyList);
  }
}

Ausgabe:

Hash Set Collection :[Dhruv, Sahil, Ajay]
Converted to List: [Dhruv, Sahil, Ajay]

Während die Methode collect() der Stream-API verwendet wird, um Sammlungen in eine Liste umzuwandeln, erfolgt das Kopieren mithilfe von Referenzen.

Da die Liste ein Referenzdatentyp ist, d. h. die Referenzadresse der tatsächlichen Objekte oder Elemente speichert, werden Änderungen an unserer Liste auch unsere Sammlung ändern.

Die aus der ursprünglichen Sammlung erstellte Kopierliste ist eine flache Kopie. Das bedeutet, dass das Entfernen der Liste auch das Element aus der ursprünglichen Sammlung entfernt.

Wir können dies vermeiden, indem wir eine tiefe Kopie erstellen, bei der das Kopieren einer Sammlung in eine Liste zu einer neuen Speicherzuweisung für die Liste führt, anstatt nur alte Referenzen zu kopieren.

Verwandter Artikel - Java List

Verwandter Artikel - Java Collection