Maison  >  Article  >  Java  >  API Stream dans Java 8 : comment supprimer les éléments en double d'une collection à l'aide de la méthode distinct()

API Stream dans Java 8 : comment supprimer les éléments en double d'une collection à l'aide de la méthode distinct()

PHPz
PHPzoriginal
2023-07-29 16:04:512228parcourir

API Stream dans Java 8 : Comment utiliser la méthode distinct() pour supprimer les éléments en double d'une collection

Dans Java 8, l'API Stream est introduite, qui fournit une nouvelle méthode de traitement des données qui peut être plus concise et efficace. Collecte de processus données. Une opération courante consiste à supprimer les éléments en double d’une collection. L'API Stream dans Java 8 fournit la méthode distinct() pour implémenter facilement cette fonction.

Tout d'abord, nous devons comprendre l'utilisation de base de l'API Stream. Stream est un nouveau type de données dans Java 8, qui représente une série d'éléments et peut effectuer diverses opérations. Nous pouvons obtenir un objet Stream en appelant la méthode stream() de la collection, puis effectuer diverses opérations sur l'objet Stream et enfin renvoyer le résultat sous la forme d'un nouvel objet Stream ou d'autres formes de données. L'API Stream nous fournit une série de méthodes de filtrage, de mappage, de tri, d'agrégation et d'autres opérations.

Il est très simple d'utiliser la méthode distinct() pour supprimer les éléments en double d'une collection. Il suffit de convertir la collection en un objet Stream, puis d'appeler la méthode distinct(). La méthode distinct() renvoie un nouvel objet Stream, qui contient les éléments dédupliqués dans l'objet Stream d'origine.

Voici un exemple de code qui montre comment utiliser la méthode distinct() pour supprimer les éléments en double d'une collection :

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

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

        List<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);

        System.out.println("原始集合:" + numbers);

        List<Integer> distinctNumbers = numbers.stream()
                                               .distinct()
                                               .collect(Collectors.toList());

        System.out.println("去重后的集合:" + distinctNumbers);
    }
}

Dans l'exemple ci-dessus, nous avons créé une collection List contenant des éléments en double. Ensuite, nous le convertissons en objet Stream en appelant la méthode stream() de la collection de nombres. Ensuite, nous appelons la méthode distinct() pour supprimer les éléments en double et convertissons le résultat en une nouvelle collection List via collect(Collectors.toList()).

Exécutez le code ci-dessus, nous pouvons obtenir le résultat suivant :

Ensemble original : [1, 2, 3, 1, 2, 3]
Ensemble en double : [1, 2, 3]

Vous pouvez voir To, utilisez la méthode distinct() pour supprimer avec succès les éléments en double de la collection.

Il convient de noter que la méthode distinct() supprimera les doublons en fonction de la méthode equals() de l'élément. Si les éléments de la collection sont des objets personnalisés, nous devons alors nous assurer que l'objet implémente correctement la méthode equals().

De plus, la méthode distinct() peut également être utilisée pour dédupliquer des objets. Implémentez simplement la méthode equals() correctement dans la classe d'objet.

Pour résumer, l'API Stream dans Java 8 fournit un moyen concis et efficace de supprimer les éléments en double d'une collection. Nous pouvons facilement implémenter cette fonction en appelant la méthode distinct(). L'utilisation de l'API Stream peut réduire le code fastidieux et améliorer la lisibilité et la maintenabilité du code. Si vous n'avez pas essayé l'API Stream dans Java 8, il est maintenant temps de l'apprendre et de l'appliquer !

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn