DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

Cap8 Mais operações com Streams

Ordenando um Stream

1 Ordenação de uma List
Utiliza o método sort da List.

Exemplo de ordenação por nome:
usuarios.sort(Comparator.comparing(Usuario::getNome));

2 Ordenação em um Stream
O método sorted é usado para ordenar elementos em um Stream.

Exemplo de filtragem e ordenação por nome:

usuarios.stream()
.filter(u -> u.getPontos() > 100)
.sorted(Comparator.comparing(Usuario::getNome));

Diferença principal: sorted não modifica a lista original (List).

3 Convertendo o Stream para uma Lista

O resultado pode ser coletado em uma nova lista usando collect(Collectors.toList()):

List<Usuario> filtradosOrdenados = usuarios.stream()
.filter(u -> u.getPontos() > 100)
.sorted(Comparator.comparing(Usuario::getNome))
.collect(Collectors.toList());

4 Comparação com Java 7

Código mais extenso e menos legível no Java 7:

  • Uso de uma lista temporária.

  • Necessidade de um laço for para filtragem.

  • Uso de uma classe anônima para implementar Comparator

List<Usuario> usuariosFiltrados = new ArrayList<>();
for(Usuario usuario : usuarios) {
if(usuario.getPontos() > 100) {
usuariosFiltrados.add(usuario);
}
}
Collections.sort(usuariosFiltrados, new Comparator<Usuario>() {
public int compare(Usuario u1, Usuario u2) {
return u1.getNome().compareTo(u2.getNome());
}
});

Conclusão: Streams tornam o código mais enxuto e legível.

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

👋 Kindness is contagious

DEV is better (more customized, reading settings like dark mode etc) when you're signed in!

Okay