LINQ的Java等价物是什么?


当前回答

既然Java8支持lambdas,就可以创建与LINQ非常相似的JavaAPI了。

Jinq是这些新的LINQ风格的Java库之一。

我是这个库的开发人员。它基于五年来使用字节码分析将Java转换为数据库查询的研究。类似于C#的D-LINQ是一个位于实体框架之上的查询层,Jinq能够充当JPA或jOOQ之上的一个查询层。它支持聚合、组和子查询。就连埃里克·梅杰(LINQ的创始人)也承认了金克。

其他回答

您可以使用Java Functional Utils转换与Android上的Java 1.7兼容的C#101 LINQ示例。

JaQu是Java的LINQ等价物。虽然它是为H2数据库开发的,但它应该适用于任何数据库,因为它使用JDBC。

无耻的自插塞:你可以随时使用https://github.com/amoerie/jstreams

适用于Java 6及以上版本,非常适合Android开发。

它看起来很像Scala运算符、lodash、C#LINQ等。

对于基本的函数集合,Java8内置了它,大多数主要的非Java JVM语言(Scala、Clojure等)都内置了它。

对于SQL数据库的完全语言集成访问,Scala(在JVM上运行)具有Slick

参见SBQL4J。它是与Java集成的类型安全的强查询语言。允许编写复杂和多重嵌套查询。有很多运算符,Java方法可以作为构造函数在查询中调用。查询被转换为纯Java代码(在运行时没有反射),因此执行速度非常快。

编辑:到目前为止,SBQL4J是Java语言的唯一扩展,它提供了类似LINQ的查询功能。有一些有趣的项目,比如Quaere和JaQue,但它们只是API,而不是编译时具有强类型安全性的语法/语义扩展。