Avatar ·

Was ist das Äquivalent zu LINQ in Java? Wie arbeitet man effizient mit Collections?

Hallo Kollegen! Ich bin ein Java-Anfänger und wechsle von C#. Dort habe ich aktiv LINQ (Language Integrated Query) für Filterung, Sortierung und Projektion von Daten in Collections verwendet. Zum Beispiel war dieser Code in C# für mich vertraut:

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

Jetzt in Java arbeite ich mit Collections und verstehe, dass normale for-each-Schleifen für solche Aufgaben viel Boilerplate-Code bedeuten. Zum Beispiel filtere ich derzeit eine Liste so:

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

Das funktioniert, aber der Code wird umständlich, besonders wenn mehrere Operationen nacheinander ausgeführt werden müssen (Filterung, Sortierung).