LINQ的Java等价物是什么?
当前回答
您可以使用lambdaj库以更易读的方式选择集合中的项目(以及更多)
https://code.google.com/archive/p/lambdaj/
它比Quaere库有一些优势,因为它不使用任何魔法字符串,它完全是类型安全的,在我看来,它提供了一个更可读的DSL。
其他回答
JaQu是Java的LINQ等价物。虽然它是为H2数据库开发的,但它应该适用于任何数据库,因为它使用JDBC。
对于Java来说,并不是真正的“Linq to SQL”。但有点接近。查询DSL
没有与LINQ for Java等效的语言。但是有一些外部API看起来像LINQ,比如https://github.com/nicholas22/jpropel-light, https://code.google.com/p/jaque/
也许不是你所希望的答案,但如果你的代码的某些部分需要在集合上做大量工作(搜索、排序、过滤、转换、分析),你可以考虑用Clojure或Scala编写一些类。
由于其功能性,使用集合是他们最擅长的。我对Scala没有太多经验,但使用Clojure,您可能会发现一个更强大的Linq,一旦编译,您将生成的类将与其他代码库无缝集成。
没有什么比LINQ for Java更好的了。
...
Edit
现在,在Java8中,我们介绍了StreamAPI,这在处理集合时是一种类似的事情,但它与Linq不同。
如果您正在寻找的是ORM,比如实体框架,那么您可以尝试Hibernate
:-)
推荐文章
- 转换列表的最佳方法:map还是foreach?
- 如何分割逗号分隔的字符串?
- Java字符串—查看字符串是否只包含数字而不包含字母
- Mockito.any()传递带有泛型的接口
- 在IntelliJ 10.5中运行测试时,出现“NoSuchMethodError: org.hamcrest. matcher . descripbemismatch”
- 使用String.split()和多个分隔符
- Java数组有最大大小吗?
- 在Android中将字符串转换为Uri
- 从JSON生成Java类?
- 为什么java.util.Set没有get(int index)?
- Swing和AWT的区别是什么?
- 为什么Java流是一次性的?
- 四舍五入BigDecimal *总是*有两位小数点后
- 设计模式:工厂vs工厂方法vs抽象工厂
- Java:检查enum是否包含给定的字符串?