Maison  >  Article  >  Java  >  Comment obtenir des valeurs uniques d'ArrayList en utilisant Java 8 ?

Comment obtenir des valeurs uniques d'ArrayList en utilisant Java 8 ?

WBOY
WBOYavant
2023-09-05 11:01:021354parcourir

如何使用Java 8从ArrayList中获取唯一值?

Extraire des valeurs uniques d'une ArrayList devient plus facile et plus rapide en tirant parti des fonctionnalités de programmation fonctionnelle de Java 8 telles que l'API Stream, les flux et les expressions lambda. Grâce à ces fonctionnalités, vous pouvez extraire différents éléments sans itération fastidieuse ni inspection manuelle ; les expressions lambda facilitent cette tâche en vous permettant d'écrire du code concis et lisible. Qu'il s'agisse de traiter de grands ensembles de données ou simplement d'éliminer les doublons, Java 8 fournit des solutions puissantes et élégantes pour récupérer des valeurs uniques à partir d'ArrayList.

Liste des tableaux

La classe ArrayList de Java implémente l'interface List, fournissant des fonctions similaires aux tableaux dynamiques pour stocker et exploiter des collections d'éléments dans des tableaux réglables. Lorsque des éléments sont ajoutés ou supprimés d'un tableau ArrayList, sa taille est automatiquement ajustée, offrant flexibilité et commodité.

Il existe plusieurs méthodes pour accéder, modifier, ajouter et supprimer des éléments dans ArrayList. Les éléments sont accessibles à l'aide de la méthode get() et modifiés à l'aide de la méthode set() ; de plus, les éléments peuvent être ajoutés à une position spécifique dans la liste à l'aide de la méthode add() et les éléments peuvent être supprimés à une position spécifique à l'aide de la méthode get(). la méthode Remove(), ou à la fin de la liste. Ajouter ou supprimer des éléments.

ArrayList<String> names = new ArrayList<>();

Méthode

Java 8 propose plusieurs méthodes pour trouver des valeurs uniques dans arrayList. Vous trouverez ci-dessous deux stratégies souvent utilisées.

  • Utilisez Stream et distinct()

  • Utiliser le jeu de hachage

Les deux méthodes offrent un moyen efficace d'extraire des valeurs uniques d'une ArrayList à l'aide des fonctionnalités de Java 8, il vous suffit donc de choisir la méthode qui correspond le mieux à vos besoins et à votre style de codage.

Utilisez Stream et distinct()

Tout d'abord, convertissez ArrayList en flux en appelant sa méthode stream() ; puis utilisez unique() sur ce flux pour filtrer les valeurs en double afin que seuls les éléments uniques restent. Afin d'extraire des valeurs uniques du flux, la méthode collect() avec un collecteur approprié permet de les récupérer.

Pour une utilisation optimale de distinct(), assurez-vous que les éléments de ArrayList ont correctement remplacé la méthode equals() pour garantir leur unicité et se définissent correctement en tant qu'éléments distincts.

Algorithme

  • Créez une ArrayList et remplissez-la d'éléments.

  • Convertir ArrayList en streaming à l'aide de la méthode stream()

  • Appliquez la méthode unique() sur Stream pour éliminer les valeurs en double et ne conserver que les valeurs uniques.

  • Convertissez le flux en ArrayList ou autre collection appropriée à l'aide de la méthode collect() et d'un collecteur approprié

  • Cette nouvelle ArrayList ne contiendra que des valeurs uniques de sa ArrayList source.

Programme

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class UniqueValuesExample {
   public static void main(String[] args) {
      List<String> fruits = new ArrayList<>();
      fruits.add("Apple");
      fruits.add("Orange");
      fruits.add("Banana");
      fruits.add("Orange");
      fruits.add("Mango");
      fruits.add("Apple");

      List<String> uniqueFruits = fruits.stream()
         .distinct()
         .collect(Collectors.toList());

      System.out.println("Unique fruits: " + uniqueFruits);
   }
}

Sortie

Unique fruits: [Apple, Orange, Banana, Mango]

Utilisez HashSet

Lancez l'éditeur. Assemblez les objets HashSet dans une collection contenant des éléments uniques, puis parcourez chaque élément de l'ArrayList un par un pour l'ajouter au HashSet, en notant toutes les valeurs en double qui se produisent. Étant donné que HashSet n'autorise pas l'existence de valeurs en double, toutes les données en double dans ArrayList seront automatiquement éliminées par HashSet.

Après avoir itéré l'ArrayList, la création d'un HashSet contenant uniquement les valeurs uniques de la liste d'origine vous permet d'accéder directement à ces valeurs spécifiques ou de les reconvertir en ArrayList pour un accès ultérieur.

Cette méthode tire parti de la contrainte d'unicité inhérente à HashSet pour récupérer rapidement des valeurs uniques de ArrayList, offrant une solution pratique dans Java 8.

Algorithme

  • Créez une ArrayList et remplissez-la d'éléments.

  • Créez un objet HashSet.

  • Parcourez chaque élément dans ArrayList

  • Ajoutez chaque élément au HashSet en utilisant la méthode add()

    • HashSet éliminera automatiquement les valeurs en double car il ne stocke que les valeurs uniques.

  • Après avoir parcouru l'ArrayList, le HashSet contiendra uniquement les valeurs uniques de la liste d'origine.

  • Vous pouvez reconvertir le HashSet en ArrayList si nécessaire, ou l'utiliser directement comme outil d'accès pour y trouver des valeurs uniques

Programme

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

public class UniqueValuesExample {
   public static void main(String[] args) {
      List<String> animals = new ArrayList<>();
      animals.add("Lion");
      animals.add("Elephant");
      animals.add("Tiger");
      animals.add("Elephant");
      animals.add("Giraffe");
      animals.add("Lion");

      Set<String> uniqueAnimals = new HashSet<>(animals);

      System.out.println("Unique animals: " + uniqueAnimals);
   }
}

Sortie

Unique animals: [Elephant, Lion, Tiger, Giraffe]

Conclusion

Dans ce tutoriel, nous avons vu comment Java 8 fournit une solution efficace et élégante pour extraire des valeurs uniques d'ArrayList. En tirant parti de la méthode unique() de son API Stream et en éliminant rapidement les doublons d'une ArrayList pour obtenir de nouveaux éléments uniques, ainsi que de ses capacités de programmation fonctionnelle pour un code concis et lisible, les développeurs peuvent effectuer cette tâche facilement, rapidement et efficacement.

HashSet peut également fournir un autre moyen efficace de trouver des valeurs uniques en l'initialisant avec une ArrayList ; tous les éléments en double sont automatiquement éliminés, ne laissant que les entrées uniques à l'intérieur.

La flexibilité et la commodité de Java 8 dans la gestion de la tâche d'extraction de valeurs uniques d'une ArrayList sont clairement évidentes à partir de ces méthodes ; qui exploitent toutes deux son implémentation Stream API ou HashSet pour une productivité maximale, aidant les développeurs à atteindre facilement leurs objectifs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer