Java/Android best equivalent for C# linq
本问题已经有最佳答案,请猛点这里访问。
让我们看看这个示例C代码:
1 2 | 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(); |
我用Java中的CeleSestEnter设置,显然不需要编写华丽的/Frach循环来迭代集合。
据我所知,Java中没有精确的LINQ等效网络,但是我还是Java编程入门,有什么可以推荐给我的吗?我实际上在爪哇寻找最紧凑和优雅的方式来达到同样的效果。
[增加]所以,谢谢所有的回复。不过,我需要在Android上使用它,但似乎不行。有没有解决方案?
(对不起,是重复的)
[增加]有人试过这个吗?http://sourceforge.net/projects/streamsupport/
在Java8中:
1 |
为了响应您对Android的需求,请查看lambdaj:https://code.google.com/p/lambdaj/它与Android兼容-尽管语法不同。因为我从未使用过文档,所以您必须查看它。您还可以查看https://github.com/wagnerandrade/coollection
如果您需要Java 7或更早版本,请尝试使用谷歌代码中的LAMBDAJ库。如果不相同,它将提供类似的功能。
Java 8流式API与lambda表达式相结合将完成这项工作:
1 2 | int[] numbers = new int[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; long count = Arrays.stream(numbers).filter(n -> n < 3 || n > 7).count(); |
使用
1 |