- Add support for
orElse()
andorElseEmpty()
on size-based gatherers to provide a non-exceptional output stream - Implement
everyNth()
to get everyn
th element from the stream - Implement
uniquelyOccurring()
to emit stream elements that occur a single time - Implement
takeUntil()
to take from a stream until a predicate is met, including the first element that matches the predicate - Implement
foldIndexed()
to perform a fold along with the index of each element - Implement
scanIndexed()
to perform a scan along with the index of each element - Implement
intersperse()
to put the given element between each element of the stream - Implement
cross(iterable)
,cross(iterator)
, andcross(stream)
to combine elements in the input stream with the given source of elements
- Use greedy integrators where possible (Fixes #57)
- Add JSpecify annotations for static analysis
- Implement
orderByFrequencyAscending()
andorderByFrequencyDescending()
- Implement
movingProduct()
andmovingProductBy()
- Implement
movingSum()
andmovingSumBy()
- Remove
maxBy(fn)
andminBy(fn)
, can be done with JDK methods trivially - Rename
exactSize()
tosizeExactly()
- Implement
sizeLessThan
,sizeLessThanOrEqualTo
,sizeGreaterThan
, andsizeGreaterThanOrEqualTo
- API Style - Functions, when used as arguments, should come last for consistency and to play nice with Kotlin (Fixes #64)
- Implement
dropLast(n)
- Implement
grouping()
andgroupingBy(fn)
- Add support for
zipWith(iterable)
andzipWith(iterator)
- Add support for
interleave(iterable)
andinterleave(iterator)
- Add support for
appendLonger()
,appendArgumentIfLonger()
, andappendSourceIfLonger()
oninterleave()
- Add support for
argumentWhenSourceLonger()
,sourceWhenArgumentLonger()
,nullArgumentWhenSourceLonger()
, andnullSourceWhenArgumentLonger
onzipWith()
- Implement
reverse()
- Implement
maxBy(fn)
andminBy(fn)
- Implement
exactSize(n)
- Implement
suffle()
andshuffle(RandomGenerator)
- Implement
filterWithIndex()
- Implement
runningProduct()
andrunningProductBy()
- Implement
runningSum()
andrunningSumBy()
- Remove
concat()
implementation (the JDK has this) - Remove
withIndexStartingAt()
, not sure if this is a real use case.
- Move minimum Java version from 22 to 23
- Added starting point for indexing gatherer
- Added throttling over a time period
- Added debounce over a time period
- Added Standard Deviation (population and sample)
- Refactored all BigDecimal-based Gatherers
- Added concat