LINQ的Java等价物是什么?
当前回答
没有与LINQ for Java等效的语言。但是有一些外部API看起来像LINQ,比如https://github.com/nicholas22/jpropel-light, https://code.google.com/p/jaque/
其他回答
您可以使用lambdaj库以更易读的方式选择集合中的项目(以及更多)
https://code.google.com/archive/p/lambdaj/
它比Quaere库有一些优势,因为它不使用任何魔法字符串,它完全是类型安全的,在我看来,它提供了一个更可读的DSL。
与2014年一样,我终于可以说LINQ终于在java8中出现了。因此,不再需要寻找LINQ的替代品。
有一个替代的解决方案,库利选择。
Coolection并没有假装是新的lambda,但是我们周围都是旧的遗留Java项目,这个库将对我们有所帮助。它的使用和扩展非常简单,只涵盖集合上最常用的迭代操作,例如:
from(people).where("name", eq("Arthur")).first();
from(people).where("age", lessThan(20)).all();
from(people).where("name", not(contains("Francine"))).all();
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/
您可以尝试此库:https://code.google.com/p/qood/
以下是使用它的一些原因:
轻量级:只有9个公共接口/类需要学习。类似SQL的查询:支持groupby、order by、left join、,公式等对于大数据:使用文件(QFS)而不是堆内存。尝试解决对象关系阻抗失配。
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 如何检查IEnumerable是否为空或空?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder