Neredeyse kesinlikle kesinlikle Spliteratorbir kullanıcı olarak uğraşmak zorunda kalmamalısınız ; Sen yazı eğer sadece gerekli olmalıdır Collectiontürleri kendinizi ve ayrıca optimize niyetinde onlara işlemleri parallelized.
Değeri ne Spliteratorolursa olsun, bir koleksiyonun öğeleri üzerinde koleksiyonun bir bölümünü kolayca ayırabileceğiniz şekilde çalışmanın bir yoludur, çünkü paralelleştiriyorsunuz ve koleksiyonun bir parçası üzerinde bir iş parçacığının çalışmasını istiyorsanız, bir iplik başka bir parça üzerinde çalışmak, vb.
Aslında, tür değerlerini de asla Streambir değişkene kaydetmemelisiniz . Streamsıralama bir benzeri olan Iteratorbu size hemen hemen her zaman Javadoc örnekte olduğu gibi bir akıcı zincirinde kullanacağınız bir kerelik kullanımlık obje olması açısından,:
int sum = widgets.stream()
.filter(w -> w.getColor() == RED)
.mapToInt(w -> w.getWeight())
.sum();
Collectorbir harita / indirgeme "azaltma" işleminin en genelleştirilmiş, soyut olası versiyonudur; özellikle, paralelleştirme ve sonlandırma adımlarını desteklemesi gerekir. S örnekleri Collectorşunları içerir:
- özetleme, ör.
Collectors.reducing(0, (x, y) -> x + y)
- StringBuilder ekleniyor, ör.
Collector.of(StringBuilder::new, StringBuilder::append, StringBuilder::append, StringBuilder::toString)