Qual é o análogo do LINQ em Java? Como trabalhar eficientemente com coleções?
Olá, colegas! Sou um desenvolvedor Java iniciante, migrando do C#. Lá, eu usava ativamente o LINQ (Language Integrated Query) para filtrar, ordenar e projetar dados em coleções. Por exemplo, este código em C# era familiar para mim:
var numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
var evenSquares = numbers
.Where(n => n % 2 == 0)
.Select(n => n * n)
.ToList();
// Resultado: [4, 16, 36]
Agora em Java, estou trabalhando com coleções e percebo que loops for-each comuns para essas tarefas geram muito código boilerplate. Por exemplo, é assim que eu atualmente filtro uma lista:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evenSquares = new ArrayList<>();
for (Integer n : numbers) {
if (n % 2 == 0) {
evenSquares.add(n * n);
}
}
Isso funciona, mas o código fica verboso, especialmente quando é necessário executar várias operações em sequência (filtragem, ordenação,