Streams Avançado

Use gatherers para operações intermediárias customizadas em streams.

✕ 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.
🧩

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
Stream Gatherers
Disponível

Finalizado no JDK 24 (JEP 485, março de 2025)

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.

Compartilhar 𝕏 🦋 in