JEP 473: Proposal for new built-in gatherer `indexed`
Henrik Wall
xehpuk.dev at gmail.com
Thu Dec 5 16:48:11 UTC 2024
Hey folks,
Not having access to the index of an element of a stream is often a
reason to fall back to a traditional loop, at least for me. I'd love
to have `Gatherers.indexed()` that looks something like this:
public static <TR> Gatherer<TR, ?, Map.Entry<Integer, TR>> indexed() {
return Gatherer.ofSequential(
() -> new int[1],
Gatherer.Integrator.ofGreedy((state, element, downstream) ->
downstream.push(Map.entry(state[0]++, element)))
);
}
(Potentially with a custom pair class to avoid auto-boxing.)
In other popular languages like Python or Rust, this is also called `enumerate`.
Any chance to get that in a future release?
Regards,
Henrik
More information about the core-libs-dev
mailing list