Convertir une collection en liste en Java

Dhruvdeep Singh Saini 12 octobre 2023
  1. Utiliser un constructeur pour convertir une collection en liste en Java
  2. Utiliser des fonctions intégrées pour convertir une collection en liste en Java
  3. Utiliser la boucle for pour convertir une collection en liste en Java
  4. Utilisez collect pour convertir une collection en liste en Java
Convertir une collection en liste en Java

Cet article présentera et discutera des différentes méthodes de conversion d’une collection en liste en Java.

Utiliser un constructeur pour convertir une collection en liste en Java

Nous pouvons utiliser la fonction constructeur et fournir la collection que nous voulons convertir dans le paramètre.

Syntaxe:

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

Exemple:

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);
  }
}

Production:

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

Ici, nous avons créé un ensemble de hachage de noms, puis utilisé le constructeur hs pour créer une liste à partir de l’ensemble de hachage.

Utiliser des fonctions intégrées pour convertir une collection en liste en Java

Il existe deux méthodes intégrées pour convertir une collection en liste dans les classes Array et Collections.

Utilisez asList pour convertir une collection en liste en Java

La classe Array fournit la méthode asList() pour convertir une collection de tableaux en une liste.

Syntaxe:

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

Exemple:

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);
  }
}

Production:

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

Dans le code ci-dessus, nous avons créé un tableau puis utilisé la fonction asList() avec le nom de tableau MyArray comme argument pour convertir la collection en liste.

Utilisez addAll pour convertir une collection en liste en Java

addAll() est une méthode fournie dans le cadre des collections que nous pouvons utiliser pour convertir une collection en liste. Les éléments de la collection peuvent être spécifiés un par un ou sous forme de tableau.

Ceci est similaire à la méthode asList(), mais cela fonctionne mieux, améliorant efficacement la complexité temporelle. Nous devons créer à la fois un tableau et une liste avant d’utiliser cette méthode car elle nécessite deux paramètres pour copier les éléments de la collection vers la liste.

Syntaxe:

Collections.addAll(ListName, ArrayName);

Exemple:

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);
  }
}

Production:

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

Utiliser la boucle for pour convertir une collection en liste en Java

Si nous ne voulons pas utiliser de constructeur ou de fonctions intégrées, la boucle for-each peut aider à convertir une collection en liste. Cette méthode est conviviale pour les débutants car elle offre un moyen facile de conversion.

Exemple:

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);
  }
}

Production:

Our HashSet HS:[Dhruv, Sahil, Ajay]

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

Ici, nous avons créé un ensemble de hachage de noms et les avons utilisés pour chaque boucle pour spécifier que pour chaque chaîne trouvée dans l’ensemble de hachage hs, nous ajoutons la chaîne à notre liste MyList.

Utilisez collect pour convertir une collection en liste en Java

Nous pouvons également utiliser la fonction collect() du flux pour convertir une collection en liste et afficher un résultat sans modifier notre collection d’origine.

La méthode collect() rassemble des éléments de structures de données ou de collections et fournit une logique supplémentaire pour les manipuler.

Syntaxe:

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

Exemple:

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);
  }
}

Production:

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

Lors de l’utilisation de la méthode collect() de l’API stream pour convertir les collections en liste, la copie se fait à l’aide de références.

Étant donné que la liste est un type de données de référence, c’est-à-dire qu’elle stocke l’adresse de référence des objets ou éléments réels, toute modification de notre liste modifiera également notre collection.

La liste de copie créée à partir de la collection d’origine est une copie superficielle. Cela signifie que la suppression de la liste supprimera également l’élément de la collection d’origine.

Nous pouvons éviter cela en créant une copie complète, où la copie d’une collection dans une liste entraîne une nouvelle allocation de mémoire pour la liste au lieu de simplement copier les anciennes références.

Article connexe - Java List

Article connexe - Java Collection