Maison > Java > javaDidacticiel > Comment puis-je générer efficacement des paires consécutives à partir d'un flux Java ?

Comment puis-je générer efficacement des paires consécutives à partir d'un flux Java ?

Mary-Kate Olsen
Libérer: 2024-11-29 08:19:10
original
191 Les gens l'ont consulté

How Can I Efficiently Generate Consecutive Pairs from a Java Stream?

Collecter des paires consécutives à partir de flux

Générer des paires consécutives à partir d'un flux d'éléments est une tâche courante en programmation. Considérons la tâche de convertir un flux simple comme { 0, 1, 2, 3, 4 } en un flux de paires comme suit : { new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), new Pair(3, 4) }.

Dans Java 8, les flux sont principalement conçus pour diviser les données en morceaux plus petits pour un traitement parallèle. Par conséquent, les étapes du pipeline avec état sont limitées et les opérations telles que l'accès aux éléments de flux adjacents ne sont pas directement prises en charge.

Une approche pour résoudre cette limitation consiste à utiliser les index de flux en s'appuyant sur une structure de données à accès aléatoire comme une ArrayList. Par exemple, si les éléments du flux sont stockés dans une ArrayList, nous pouvons générer les paires souhaitées comme suit :

IntStream.range(1, arrayList.size())
             .mapToObj(i -> new Pair(arrayList.get(i-1), arrayList.get(i)))
             .forEach(System.out::println);
Copier après la connexion

Cette solution a une limitation dans la mesure où elle nécessite que le flux d'entrée soit fini. Cependant, cela permet une exécution parallèle du pipeline.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal