Java中与LINQ相当的是什么?
Java中与LINQ相当的是什么?
Java中没有像LINQ这样的东西。
...
编辑
现在有了Java 8,我们引入了Stream API,它在处理集合时类似于LINQ,但并不完全相同。
如果你正在寻找像Entity Framework这样的ORM,则可以尝试Hibernate。
:-)
这里有一个备选方案,Coollection。
Coollection并不试图成为新的Lambda,但我们被古老的Java项目包围,这个库会很有帮助。它非常简单易用,可以扩展,覆盖了迭代集合中最常用的操作,例如:
from(people).where("name", eq("Arthur")).first();
from(people).where("age", lessThan(20)).all();
from(people).where("name", not(contains("Francine"))).all();
Java 8中现在可以使用JSR-335 - Lambda Expressions for the JavaTM Programming Language的形式使用Lambdas。您需要阅读Brian Goetz的文章以了解JDK8中如何实现Lambda,同时还需了解流、内部迭代、短路和构造函数引用。此外,请查看上述JSR以获取更多示例。
更新:JDK8已发布,其中包含项目lambda。值得一提的是,Java 8 in Action目前仍然是MEAP版本,建议下载。
我写了一篇关于在JDK8中使用lambda表达式的一些优点的博客,名为箭头的力量,此外NetBeans 8具有将结构转换为JDK8的强大支持,我也在博客中介绍了使用NetBeans迁移到JDK 8。
通过使用lambdaj库,您可以以更易读的方式选择集合中的项目(以及更多内容)
https://code.google.com/archive/p/lambdaj/
与Quaere库相比,它具有一些优点,因为它不使用任何魔术字符串,完全类型安全,而且在我看来提供了更易读的DSL。
JINQ项目网站: http://www.jinq.org/Jinq为开发人员提供了一种简单而自然的方式来编写Java中的数据库查询。您可以像处理存储在集合中的普通Java对象一样处理数据库数据。您可以使用正常的Java命令迭代和过滤它们,所有代码都将自动转换为优化的数据库查询。最后,Java可用的LINQ风格查询!
from x in xs select x
来找到答案(不行)。 - kizzx2你可以使用Scala,它的语法与LINQ相似,并且实际上可能比LINQ更强大。