Avatar ·

Java中LINQ的对应物是什么?如何高效处理集合?

大家好!我是一名初学Java的开发者,从C#转过来。在C#中,我经常使用LINQ(Language Integrated Query)来过滤、排序和投影集合中的数据。例如,下面这段C#代码对我来说很熟悉:

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

现在在Java中处理集合时,我发现用普通的for-each循环来做这些事会写很多样板代码。比如,下面是我目前过滤列表的方式:

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

这样虽然能工作,但代码显得很冗长,尤其是需要连续执行多个操作(过滤、排序)时。