Mam dość duży potok strumieniowy, dlatego chciałbym, aby był czysty. Mam następujący część większej rurociąguCollector powracający singletonList jeśli toList zwrócił pustą listę
Integer defaultInt;
//...
Stream<Integer> ints;
ints.filter(/* predicate_goes_here */).collect(toSingletonIfEmptyCollector);
Gdzie toSingletonIfEmptyCollector
jest podobno działają tak samo jak Collectors.toList()
robi jeśli zwraca non-emtpy listę i Collections.singletonList(defaultInt)
jeśli Collectors.toList()
wrócił pusty.
Czy istnieje krótszy sposób na jego wdrożenie (np. Poprzez komponowanie standardowych kolektorów dostarczonych w JDK), a następnie wdrożenie całej metody Collector
od zera?
Zakładam, że nie mutują wynikowej liście. –
Istnieje kilka metod pomocniczych, które mogą być przydatne w 'IntStream' nad' Stream '. ** Uwaga: ** 'IntStream' to * prymitywny strumień * (tylko mała wskazówka) –