Avatar ·

What is the analogue of LINQ in Java? How to work with collections efficiently?

Hello, colleagues! I'm a beginner Java developer transitioning from C#. There I actively used LINQ (Language Integrated Query) for filtering, sorting, and projecting data in collections. For example, this C# code was familiar to me:

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

Now in Java I work with collections and understand that regular for-each loops for such tasks involve a lot of boilerplate code. For example, here's how I currently filter a list:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);\nList<Integer> evenSquares = new ArrayList<>();\nfor (Integer n : numbers) {\n    if