StreamEx v0.4.0 Release Notes
-
- Introduced the concept of short-circuiting collectors.
StreamEx/EntryStream.collect(Collector)
method works as short-circuit operation if short-circuiting collector is passed.MoreCollectors.first/head
collectors are short-circuiting now.MoreCollectors.groupingByEnum
collector may short-circuit if downstream collector is short-circuiting.MoreCollectors.pairing
collector may short-circuit if both downstream collectors are short-circuiting.- ➕ Added new short-circuiting collectors:
onlyOne
,intersecting
,toEnumSet
,andingInt
,andingLong
. - ➕ Added new collectors:
filtering
,groupingBy
(with domain specification) which short-circuit when downstream collector is short-circuiting. - ➕ Added collectors
mapping
,collectingAndThen
,partitioningBy
which mimic standard JDK collectors, but short-circuit when downstream collector is short-circuiting. - ➕ Added
indexOf
methods for all stream types. - ➕ Added
StreamEx/EntryStream.foldLeft/foldRight
methods without identity argument. - ➕ Added
StreamEx/EntryStream.scanLeft/scanRight
methods without identity argument. - ➕ Added
StreamEx.cartesianProduct/cartesianPower
methods with reduction operator. - ➕ Added
IntStreamEx/LongStreamEx.range/rangeClosed
methods with additional step parameter. - ➕ Added
IntStreamEx/LongStreamEx/DoubleStreamEx.foldLeft
methods. - 🔀 Methods
StreamEx/EntryStream.toMap/toSortedMap/toCustomMap
without merge function now produce better exception message in the case of duplicate keys. - 🔀 Methods
StreamEx/EntryStream.toMap/toSortedMap/toCustomMap
accepting merge function are not guaranteed to return ConcurrentMap for parallel streams now. They however guarantee now the correct merging order for non-commutative merger functions. - Methods
StreamEx/EntryStream.grouping*
are not guaranteed to return the ConcurrentMap for parallel streams now. They however guarantee now the correct order of downstream collection. - 🚀 Methods
StreamEx.ofEntries
are declared as deprecated and may be removed in future releases! - 🚚 Deprecated methods
EntryStream.mapEntryKeys
/mapEntryValues
are removed! - 📚 Updated documentation