协慌网

登录 贡献 社区

LINQ 的 Java 等价物是什么?

LINQ 的 Java 等价物是什么?

答案

没有像 LINQ for Java 那样的东西。

...

编辑

现在使用 Java 8,我们将介绍Stream API ,这在处理集合时是类似的事情,但它与 Linq 并不完全相同。

如果它是您正在寻找的 ORM,例如 Entity Framework,那么您可以尝试Hibernate

:-)

有另一种解决方案, Coollection

Coolection 并没有假装成新的 lambda,但是我们被旧的遗留 Java 项目所包围,这个 lib 将会有所帮助。它的使用和扩展非常简单,仅涵盖迭代最常用的集合操作,如下所示:

from(people).where("name", eq("Arthur")).first();
from(people).where("age", lessThan(20)).all();
from(people).where("name", not(contains("Francine"))).all();

Lambdas 现在在 Java 8 中以JSR-335的形式提供- 用于 JavaTM 编程语言的 Lambda 表达式

更新JDK8 现已发布 ,其中包含项目 lambda。值得抓取目前仍在 MEAP 中的Java 8 in Action副本。

阅读Brian Goetz关于 lambdas 的文章,以便理解 lambda 在 JDK8 中的实现方式,同时还要了解流,内部迭代,短路和构造函数引用。另请参阅上面的 JSR 以获取更多示例。

我写了一篇关于在 JDK8 中使用 lambdas 的一些优点的博客,名为The Power of the ArrowNetBeans 8也非常支持将构造转换为 JDK8,我还在博客中介绍了如何使用 NetBeans 迁移到 JDK 8