Stream Gatherers
Use gatherers para operações intermediárias customizadas em streams.
Comparação de Código
✕ Java 8
// Sliding window: manual implementation
List<List<T>> windows = new ArrayList<>();
for (int i = 0; i <= list.size()-3; i++) {
windows.add(
list.subList(i, i + 3));
}
✓ Java 24+
var windows = stream
.gather(
Gatherers.windowSliding(3)
)
.toList();
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Componível
Gatherers compõem com outras operações de stream.
Operações embutidas
windowFixed, windowSliding, fold, scan prontos para uso.
Extensível
Escreva gatherers customizados para qualquer transformação intermediária.
Abordagem Antiga
Collector customizado
Abordagem Moderna
gather()
Desde o JDK
24
Dificuldade
Avançado
Suporte JDK
Stream Gatherers
Disponível
Finalizado no JDK 24 (JEP 485, março de 2025)
Como funciona
Gatherers são uma nova operação intermediária de stream que pode expressar transformações complexas como janelas deslizantes, grupos de tamanho fixo e operações de scan que eram impossíveis com as operações padrão de stream.
Documentação Relacionada