Java / Android最佳等效于C#linq

use*_*216 7 c# java linq android

让我们看一下这个示例C#代码:

List<int> numbers = new List<int>() { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
int numCount = numbers.Where(n => n < 3 || n > 7).Count();
Run Code Online (Sandbox Code Playgroud)

我对Java最相似的东西很着迷,显然不需要编写幻想的for / foreach循环来迭代集合。

据我所知,在Java中没有确切的linq equivalnet,但是我仍然是Java编程的初学者,所以您有什么可以推荐给我的吗?我实际上正在寻找在Java中实现相同结果的最紧凑,最优雅的方法

[添加]因此,感谢所有答复。但是,我需要在Android上使用它,但似乎不行。有什么解决办法吗?

(很抱歉,它是重复的)

[添加]有人尝试过吗? http://sourceforge.net/projects/streamsupport/

cae*_*say 4

在Java8中:

Arrays.stream(numbers).filter(n -> n < 3 || n > 7).count();
Run Code Online (Sandbox Code Playgroud)

为了满足您对 android 的要求,请查看 lambdaj: https: //code.google.com/p/lambdaj/它与 android 兼容 - 尽管语法不同。您必须查看文档,因为我从未使用过它。您还可以查看https://github.com/wagnerandrade/coollection