Convertir ArrayList en Set en Java

Mohammad Irfan 12 octobre 2023
  1. Convertir ArrayList en HashSet en utilisant une approche naïve en Java
  2. Convertir ArrayList en HashSet à l’aide de constructeurs en Java
  3. Convertir ArrayList en HashSet à l’aide de l’API Java 8 Stream
  4. Convertir ArrayList en HashSet à l’aide de la méthode Set.copyOf() en Java
  5. Convertir ArrayList en HashSet à l’aide de la bibliothèque de collections Apache Commons en Java
Convertir ArrayList en Set en Java

ArrayList est une classe d’implémentation de l’interface List qui est utilisée pour stocker les données dans un ordre linéaire, tandis que l’ensemble est une interface qui a la classe HashSet pour stocker les données. La principale différence entre ces deux est que le HashSet n’autorise pas les éléments en double et stocke les éléments uniques.

Ce didacticiel présentera différentes approches pour convertir une ArrayList en un HashSet.

Convertir ArrayList en HashSet en utilisant une approche naïve en Java

C’est l’approche la plus basique pour convertir une liste en un ensemble.

Dans cette approche, nous déclarons d’abord un ensemble vide. Nous parcourons ensuite la liste et ajoutons ses éléments à l’ensemble un par un en utilisant la méthode HashSet.add(). Lorsque la boucle se termine, la liste est convertie en un ensemble.

Regardez le code ci-dessous.

import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = new HashSet<String>();
    // apply for loop
    for (String ele : list) {
      set.add(ele);
    }
    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

Production :

Rahul
Kushagra
Jay
Karan
Laxman
Praful

Dans le code ci-dessus, nous avons créé une liste qui stocke certains noms. Nous initialisons également un ensemble vide nommé set.

Nous parcourons ensuite la liste et ajoutons ses éléments à définir un par un. Enfin, nous imprimons les éléments de l’ensemble. Remarquez comment les éléments en double dans la liste sont éliminés.

Convertir ArrayList en HashSet à l’aide de constructeurs en Java

Cette approche est la plus simple de toutes les approches. Dans cette approche, nous passons la liste qui doit être convertie au constructeur de la classe HashSet.

Cela élimine le besoin d’une boucle for comme cela était requis dans l’approche précédente. Le constructeur renvoie un nouvel ensemble contenant tous les éléments uniques.

Regardez le code ci-dessous.

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

public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = new HashSet<String>(list);

    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

Production :

Rahul
Kushagra
Jay
Karan
Laxman
Praful

Dans le code ci-dessus, nous créons une liste qui stocke certains noms. Nous initialisons également un ensemble vide nommé set.

Nous passons la liste en argument au constructeur de HashMap. Enfin, nous imprimons les éléments de l’ensemble. Remarquez comment les éléments en double dans la liste sont éliminés.

Convertir ArrayList en HashSet à l’aide de l’API Java 8 Stream

Nous avons utilisé l’API Java 8 Stream pour convertir ArrayList en HashSet dans cette approche. Nous avons d’abord converti la liste en flux. Nous appliquons ensuite la fonction collect au flux.

Pour convertir en ensemble, nous avons utilisé la fonction Collectors.toSet() dans l’opération collect pour obtenir un ensemble. Regardez le code ci-dessous.

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set using stream
    Set<String> set = list.stream().collect(Collectors.toSet());

    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

Production :

Rahul
Kushagra
Jay
Karan
Laxman
Praful

Nous avons converti une liste en flux en utilisant la fonction List.stream() dans le code ci-dessus. Nous appliquons l’opération collect au flux et passons la méthode Collectors.toSet() en argument.

Cela se traduit par la conversion du flux en un ensemble. Nous stockons ensuite cet ensemble dans l’ensemble de variables.

Convertir ArrayList en HashSet à l’aide de la méthode Set.copyOf() en Java

Java 10 fournit une méthode Set.copyof() qui prend une Collection comme argument et renvoie un ensemble immuable contenant les éléments de la Collection donnée. Dans cette approche, nous utilisons la méthode Set.copyof() pour convertir une ArrayList en un HashSet.

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = Set.copyOf(list);
    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

Production :

Rahul
Kushagra
Jay
Karan
Laxman
Praful

Convertir ArrayList en HashSet à l’aide de la bibliothèque de collections Apache Commons en Java

Si vous travaillez avec la bibliothèque Apache Commons Collection, utilisez la méthode CollectionUtils.addAll() qui prend deux arguments : l’objet de la collection cible et l’objet de la collection source.

Les valeurs de l’objet de collection source sont copiées dans l’objet de collection cible et créent un ensemble. Regardez le code ci-dessous.

Ce code utilise le code de dépendance de la bibliothèque commune Apache. Tout d’abord, ajoutez cette dépendance à votre projet Java pour exécuter ce code avec succès.

<!-- https://mvnrepository.com/artifact/commons-collections/commons-collections -->
<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.2</version>
</dependency>
import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> sourcelist =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> targetset = new HashSet<String>();
    // Adding elements
    CollectionUtils.addAll(targetset, sourcelist);
    // display the set
    for (String ele : targetset) {
      System.out.println(ele);
    }
  }
}

Production :

Rahul
Kushagra
Jay
Karan
Laxman
Praful

Article connexe - Java ArrayList

Article connexe - Java Set