LINQ的Java等价物是什么?


当前回答

LINQ to Objects-JAVA 8添加了流API,它增加了对值流的函数式操作的支持:

包java.util.stream

Java 8解释:将Lambdas应用于Java集合

LINQ to SQL/Nibernate/等。(数据库查询)-一种选择是使用JINQ,它也使用了新的JAVA 8功能,于2014年2月26日在Github上发布:https://github.com/my2iu/Jinq

Jinq为开发人员提供了一种简单自然的数据库编写方法Java中的查询。您可以像对待普通Java对象一样对待数据库数据存储在集合中。您可以使用正常的Java命令,所有代码将自动转换为优化的数据库查询。最后,LINQ风格查询可用于Java!

JINQ项目现场:http://www.jinq.org/

其他回答

与2014年一样,我终于可以说LINQ终于在java8中出现了。因此,不再需要寻找LINQ的替代品。

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

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

没有什么比LINQ for Java更好的了。

...

Edit

现在,在Java8中,我们介绍了StreamAPI,这在处理集合时是一种类似的事情,但它与Linq不同。

如果您正在寻找的是ORM,比如实体框架,那么您可以尝试Hibernate

:-)

您可以使用lambdaj库以更易读的方式选择集合中的项目(以及更多)

https://code.google.com/archive/p/lambdaj/

它比Quaere库有一些优势,因为它不使用任何魔法字符串,它完全是类型安全的,在我看来,它提供了一个更可读的DSL。

LINQ to Objects-JAVA 8添加了流API,它增加了对值流的函数式操作的支持:

包java.util.stream

Java 8解释:将Lambdas应用于Java集合

LINQ to SQL/Nibernate/等。(数据库查询)-一种选择是使用JINQ,它也使用了新的JAVA 8功能,于2014年2月26日在Github上发布:https://github.com/my2iu/Jinq

Jinq为开发人员提供了一种简单自然的数据库编写方法Java中的查询。您可以像对待普通Java对象一样对待数据库数据存储在集合中。您可以使用正常的Java命令,所有代码将自动转换为优化的数据库查询。最后,LINQ风格查询可用于Java!

JINQ项目现场:http://www.jinq.org/