Avatar ·

Quel est l'équivalent de LINQ en Java ? Comment travailler efficacement avec les collections ?

Bonjour, collègues ! Je suis un développeur Java débutant, je viens de C#. Là-bas, j'utilisais activement LINQ (Language Integrated Query) pour le filtrage, le tri et la projection de données dans les collections. Par exemple, ce code en C# m'était familier :

var numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
var evenSquares = numbers
    .Where(n => n % 2 == 0)
    .Select(n => n * n)
    .ToList();
// Résultat : [4, 16, 36]

Maintenant en Java, je travaille avec les collections et je comprends que les boucles for-each classiques pour de telles tâches génèrent beaucoup de code répétitif. Par exemple, voici comment je filtre actuellement une liste :

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);
    }
}

Cela fonctionne, mais le code devient lourd, surtout lorsqu'il faut effectuer plusieurs opérations à la suite (filtrage, tri,