All Versions
37
Latest Version
Avg Release Cycle
112 days
Latest Release
-

Changelog History
Page 3

  • v0.4.0 Changes

    • 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
  • v0.3.8 Changes

    • ➕ Added toBooleanArray collectors (object and primitive).
    • ➕ Added MoreCollectors.distinctBy collector.
    • ➕ Added StreamEx/EntryStream.distinct(keyExtractor) intermediate operation.
    • ➕ Added EntryStream.distinctKeys/distinctValues intermediate operations.
    • ➕ Added StreamEx.cartesianPower/cartesianProduct static methods.
    • ⚡️ Optimized: MoreCollectors.least/greatest collectors are now much faster (up to 10x depending on input).
    • 📚 Updated documentation
  • v0.3.7 Changes

    • ➕ Added MoreCollectors.groupingByEnum collector.
    • ➕ Added IntCollector/LongCollector/DoubleCollector.averaging primitive collectors.
    • ➕ Added IntCollector/LongCollector/DoubleCollector.andThen default methods to replace collectingAndThen.
    • ➕ Added StreamEx.toFlatCollection and StreamEx.toFlatList terminal operations.
    • ➕ Added StreamEx.ofSubLists(list, length, shift) static method.
    • 🚀 Methods IntCollector/LongCollector/DoubleCollector.collectingAndThen are declared as deprecated and may be removed in future releases!
    • 📚 Updated documentation
  • v0.3.6 Changes

    • ➕ Added StreamEx.collapse(Predicate, Collector) operation.
    • ➕ Added takeWhile and dropWhile methods for all stream types.
    • ➕ Added StreamEx.ofPairs and EntryStream.ofPairs methods.
    • Optimized: minBy*/maxBy* methods for primitive streams now call keyExtractor function at most once per element.
    • 📚 Updated documentation
  • v0.3.5 Changes

    • Generic arguments relaxed for StreamEx methods: forPairs, collapse, groupRuns, intervalMap, sortedBy.
    • ➕ Added MoreCollectors.minIndex/maxIndex collectors.
  • v0.3.4 Changes

    • 🛠 Fixed: EntryStream.of(List<T>), EntryStream.of(T[]) and StreamEx.runLengths returned stream of Map.Entry objects which violate the documented contract for equals and hashCode.
    • 🛠 Fixed: pairMap method for all streams worked incorrectly when previous steps included parallel().flatMap() due to JDK bug. New version may also work faster in parallel for certain sources.
    • 🛠 Fixed: collapse-based methods (collapse, groupRuns, runLengths, intervalMap) worked incorrectly in various cases in parallel mode. New version may also work faster in parallel for certain sources.
    • Fixed: minBy*/maxBy* for primitive streams now return strictly the first matched element (not the arbitrary one).
    • ⚡️ Optimized: minBy/maxBy methods for primitive streams now call keyExtractor function at most once per element
    • ⚡️ Optimized: many stream creation methods (zip for all streams, EntryStream.of(List), StreamEx.ofSubLists, etc.) now use custom spliterator.
    • ⚡️ Optimized: IntStreamEx.ofChars reimplemented for JDK 8 as original CharSequence.chars implementation is poor.
    • ➕ Added construction of all stream types from the Spliterator.
    • 📚 Updated documentation
  • v0.3.3 Changes

    • ➕ Added StreamEx.intervalMap method
    • ➕ Added StreamEx.runLengths method
    • ➕ Added StreamEx.ofSubLists method
    • ➕ Added MoreCollectors.countingInt collector
    • StreamEx/EntryStream.maxBy*/minBy* methods optimized: now keyExtractor function is called at most once per element
    • 🐎 StreamEx.groupRuns method optimized (up to 5x performance boost depending on data)
    • StreamEx.collapse methods changed: now the elements passed to the predicate are guaranteed to be two adjacent elements from the source stream.
    • 📚 Updated documentation: now documentation is automatically copied from JDK for the inherited methods.
  • v0.3.2 Changes

    • ➕ Added MoreCollectors class: several useful collectors absent in JDK
    • ➕ Added skipOrdered(n) method to every Stream implementation
    • 📚 Updated documentation
  • v0.3.1 Changes

    • ➕ Added mapToEntry method for primitive streams
    • ➕ Added joining methods family for primitive streams
    • ➕ Added StreamEx.collapse/groupRuns methods
    • ➕ Added StreamEx.distinct(atLeast) method
    • 🚀 Released jar works now as an OSGi bundle
    • 📚 Updated documentation
  • v0.3.0 Changes

    • ➕ Added primitive collectors: IntCollector, LongCollector, DoubleCollector
    • ➕ Added flatMapToInt/flatMapToLong/flatMapToDouble/flatMapToObj to primitive streams
    • ➕ Added EntryStream.flatMapKeyValue/filterKeyValue/mapToKey/mapToValue methods
    • ➕ Added IntStreamEx.toCharArray/toShortArray/toByteArray methods
    • ➕ Added DoubleStreamEx.toFloatArray method
    • Generic arguments for many methods are relaxed allowing more flexible usage
    • 🚀 Methods EntryStream.mapEntryKeys/mapEntryValues are declared as deprecated and may be removed in future releases!
    • 📚 Updated documentation