Elle n'a de signification que dans le cas de flux parallèles. En cas de flux parallèles ordonnées, l'opération distinct()
doit faire un travail supplémentaire afin de maintenir sa stabilité garantie, qui est,
pour les éléments dupliqués, l'élément qui apparaît en premier dans la rencontre ordre est conservé
(voir l'API Rem dans le javadoc for Stream.distinct().
en cas de flux parallèles désordonnées, aucune garantie doit être maintenu, car le flux est déjà non ordonnée. de cette façon, en supprimant la caractéristique ordonnée d'un paralle commandé l flux peut grandement améliorer les performances de l'opération distinct()
. De même, pour l'opération groupingBy()
, lever l'exigence que l'ordre de flux doit être préservé peut grandement améliorer l'efficacité de l'opération dans le cas de flux parallèles puisque la réduction elle-même peut être effectuée simultanément. Notez que cela se produit uniquement lors de la collecte à partir de flux parallèles avec des collecteurs concurrents, le collecteur ou le flux lui-même étant non ordonné. Pratiquement, vous devrez utiliser Stream.collect(groupingByConcurrent(..))
au lieu de Stream.collect(groupingBy(..))
. Voir le javadoc pour Stream.collect()
et Collector
pour plus de détails.