Middle
O que faz o método collect em Java?
sobes.tech IA
Resposta da IA
O método collect na API de Streams do Java realiza uma redução mutável (mutable reduction) dos elementos do fluxo em um único objeto resultante. Ele aceita um Collector como argumento e permite agregar dados de várias maneiras, por exemplo, coletando elementos em coleções, agrupando-os ou aplicando funções de agregação (soma, média, etc.).
Componentes principais do Collector:
supplier(): Cria um novo contêiner resultante vazio.accumulator(): Adiciona o elemento atual do fluxo ao contêiner resultante.combiner(): Combina dois contêineres resultantes (usado em fluxos paralelos).finisher(): Aplica uma transformação final ao contêiner resultante (opcional).
Implementações populares de Collector são fornecidas pela classe Collectors:
toList(),toSet(),toMap(): Coleta elementos emList,Set,Map, respectivamente.joining(): Combina elementos de string.groupingBy(): Agrupa elementos por um critério dado.counting(),summingInt(),averagingDouble(): Contagem, soma, média.
Exemplo de uso para coletar em uma lista:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class CollectExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> collectedNames = names.stream()
.collect(Collectors.toList()); // Coleta em List
System.out.println(collectedNames);
}
}