LINQ的Java等价物是什么?


当前回答

您可以尝试此库:https://code.google.com/p/qood/

以下是使用它的一些原因:

轻量级:只有9个公共接口/类需要学习。类似SQL的查询:支持groupby、order by、left join、,公式等对于大数据:使用文件(QFS)而不是堆内存。尝试解决对象关系阻抗失配。

其他回答

查看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);
}

您可以尝试此库:https://code.google.com/p/qood/

以下是使用它的一些原因:

轻量级:只有9个公共接口/类需要学习。类似SQL的查询:支持groupby、order by、left join、,公式等对于大数据:使用文件(QFS)而不是堆内存。尝试解决对象关系阻抗失配。

也许不是你所希望的答案,但如果你的代码的某些部分需要在集合上做大量工作(搜索、排序、过滤、转换、分析),你可以考虑用Clojure或Scala编写一些类。

由于其功能性,使用集合是他们最擅长的。我对Scala没有太多经验,但使用Clojure,您可能会发现一个更强大的Linq,一旦编译,您将生成的类将与其他代码库无缝集成。

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

您可以使用scala,它在语法上类似,实际上可能比linq更强大。