LINQ的Java等价物是什么?


当前回答

除非您使用javacc创建自己的等效程序,否则您将找不到LINQ的等效程序。

在有人找到可行的方法之前,还有一些好的选择,比如

jOOQ公司金克牌手表JaQue公司JaQu公司Linq4j公司码头(不再维护)查询DSLJSR-341型

其他回答

查看tiny-q。(请注意,您当前无法下载。)

下面是一个适用于上述链接的示例:

首先,我们需要一些数据的集合,比如一组字符串

String[] strings = { "bla", "mla", "bura", "bala", "mura", "buma" };

现在我们只选择以“b”开头的字符串:

Query<String> stringsStartingWithB = new Query<String>(strings).where(
    new Query.Func<String, Boolean>(){
        public Boolean run(String in) {
            return in.startsWith("b");
        }
    }
);

没有实际的数据被复制或类似的东西,一旦你开始迭代,它就会被处理:

for(String string : stringsStartingWithB ) {
    System.out.println(string);
}

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/

斯卡拉。现在我读了它,发现它像linq,但更简单,更不可读。但是scala可以在linux上运行,是吗?csharp需要单声道。

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

HQL(Hibernate查询语言)与.Net中的Linq非常相似