Comment trouver des éléments en double dans un flux en Java
La recherche d'éléments en double dans un flux de données est l'une des questions courantes lors des entretiens Java et même de nombreux examens d'étudiants. Java fournit une variété de méthodes pour rechercher les éléments en double. Nous nous concentrons principalement sur deux méthodes : la première consiste à utiliser le Set du Java Collection Framework et l'autre consiste à utiliser la méthode intégrée Collections.Frequency() du flux. .
Programme Java pour rechercher des éléments en double dans un flux
Avant d'aborder les différentes méthodes permettant d'obtenir des doublons à partir d'une collection de données, il est nécessaire de discuter de la méthode filter(). Ce sera une partie importante de l’exemple de programme.
filtre()
Cela nous permet de filtrer les éléments du flux en fonction de conditions spécifiées. Cela fait partie d'une fonction d'ordre supérieur qui applique un certain comportement au terme de flux. Cette méthode prend un prédicat comme paramètre et renvoie une liste d'éléments qui correspondent au prédicat.
Grammaire
filter(predicate);
Utilisation du framework de collection Java
Il s'agit d'une sous-interface de Java Collection Interface et n'autorise pas les valeurs en double. C'est très similaire aux ensembles mathématiques. Nous pouvons utiliser la méthode add() qui ajoute uniquement les éléments différents à l’ensemble. Pour utiliser les propriétés de l'interface Set, nous devons utiliser la classe HashSet qui implémente cette interface.
Exemple
L'exemple suivant illustre comment utiliser l'interface Set pour rechercher des éléments en double dans un flux.
Méthode
Utilisez la méthode Arrays.asList() pour créer une liste afin de stocker une liste de taille fixe.
Ensuite, utilisez la classe HashSet pour définir un Set afin de stocker uniquement les éléments différents.
Maintenant, utilisez la méthode filter() avec stream() et forEach() pour filtrer uniquement les éléments en double. Ici, stream() spécifie l'entrée sous la forme d'un flux et nous utiliserons forEach() pour itérer et imprimer les éléments répétés.
import java.util.*; public class Duplicate { public static void main(String []args) { // create a list with duplicate items List<Integer> itemsList = Arrays.asList(10, 12, 10, 33, 40, 40, 61, 61); // declaring a new Set Set<Integer> newitemSet = new HashSet<>(); System.out.println("The list of duplicate Items: "); itemsList.stream() // converting list to stream .filter(nums -> !newitemSet.add(nums)) // to filter out the elementsthat are not added to the set .forEach(System.out::println); // print the duplicates } }
Sortie
The list of duplicate Items: 10 40 61
Utilisez la méthode Collections.Frequency()
Un autre moyen le plus simple de filtrer les éléments en double d'un flux ou d'une collection consiste à utiliser la méthode Collections.Frequency() du package "java.util", qui est utilisée pour renvoyer le nombre total d'éléments dans la collection spécifiée.
Grammaire
Collections.frequency(nameOfCollection, obj);
ici,
nameOfCollection représente le flux et obj représente l'élément dont la fréquence doit être déterminée.
Exemple
Dans l'exemple ci-dessous, nous utiliserons la méthode Collections.Frequency() pour compter les occurrences de chaque élément dans le flux, puis renverrons les éléments qui apparaissent plus d'une fois. Nous imprimerons la liste complète des occurrences d’éléments répétés ainsi que le décompte.
import java.util.*; public class FindDuplicates { public static void main(String[] args) { // create a list with duplicate items List<Integer> itemslist = Arrays.asList(10, 12, 10, 10, 33, 40, 40, 61, 61); System.out.println("The list of duplicate Items with frequency: "); itemslist.stream() // converting list to stream .filter(itr -> Collections.frequency(itemslist, itr) > 1) // checking the frequency of duplicate items .forEach(System.out::println); // printing the frequency of duplicate items System.out.println("Count of duplicate items: "); // to count the duplicate items System.out.println(itemslist.stream() .filter(itr -> Collections.frequency(itemslist, itr) > 1) .count()); } }
Sortie
The list of duplicate Items with frequency: 10 10 10 40 40 61 61 Count of duplicate items: 7
Exemple
Voici un autre exemple où nous utiliserons à la fois la méthode Set Interface et Collections.Frequency() pour obtenir uniquement les éléments en double. La méthode Collections.Frequency() comptera les occurrences de chaque élément dans le flux, puis collectera les éléments dont le nombre est supérieur à 1 dans un ensemble pour supprimer les doublons. L’ensemble résultant contiendra uniquement des éléments répétés du flux.
import java.util.stream.*; import java.util.*; public class FindDuplicates { public static void main(String[] args) { // create a list with duplicate items List<Integer> itemslist = Arrays.asList(10, 12, 10, 10, 33,40, 40, 61, 61); // set to store duplicate items Set<Integer> duplicates = itemslist.stream() .filter(itr -> Collections.frequency(itemslist, itr) > 1) // checking the frequency of duplicate items .collect(Collectors.toSet()); // adding only duplicate items to set // printing the duplicate items System.out.println("The list of duplicate Items:" + duplicates); } }
Sortie
The list of duplicate Items:[40, 10, 61]
Conclusion
Dans cette section, nous conclurons notre discussion avec quelques points clés tirés des exemples et concepts ci-dessus. Nous pouvons utiliser la méthode filter() pour filtrer des types spécifiques d'éléments de la collection de données. Il fonctionne en coulisses en appliquant un prédicat à chaque élément. La capacité de Set Interface à stocker uniquement des éléments distincts en fait un excellent choix pour une tâche donnée.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du numéro Armstrong en Java. Nous discutons ici d'une introduction au numéro d'Armstrong en Java ainsi que d'une partie du code.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est
