Neredeyse kesinlikle kesinlikle Spliterator
bir kullanıcı olarak uğraşmak zorunda kalmamalısınız ; Sen yazı eğer sadece gerekli olmalıdır Collection
türleri kendinizi ve ayrıca optimize niyetinde onlara işlemleri parallelized.
Değeri ne Spliterator
olursa 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 Stream
bir değişkene kaydetmemelisiniz . Stream
sıralama bir benzeri olan Iterator
bu 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();
Collector
bir 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)