Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中查询类的列表_Java_Linq_List - Fatal编程技术网

如何在java中查询类的列表

如何在java中查询类的列表,java,linq,list,Java,Linq,List,我有一个名为class1的类,有两个成员,member1和member2。我想基于member1查询class1的ArrayList。我们可以在C#中使用linq实现这一点,非常简单。我发现,在java中,我们可以使用类似于中建议的库: 但是我没有时间学习这个库,它的库中有很多jar文件,我不知道应该导入哪一个来使用我需要的功能。这似乎需要时间。有没有人能给我一个编程提示,一个可以用这个查询替换的等价程序。看来我不能跳出林克的框框思考。有没有办法不用这些类型的库来进行查询?LINQ可以做很多事

我有一个名为class1的类,有两个成员,member1和member2。我想基于member1查询class1的ArrayList。我们可以在C#中使用linq实现这一点,非常简单。我发现,在java中,我们可以使用类似于中建议的库:


但是我没有时间学习这个库,它的库中有很多jar文件,我不知道应该导入哪一个来使用我需要的功能。这似乎需要时间。有没有人能给我一个编程提示,一个可以用这个查询替换的等价程序。看来我不能跳出林克的框框思考。有没有办法不用这些类型的库来进行查询?

LINQ可以做很多事情,没有单一的替代方法。Java没有LINQ库,它是一个.NET的东西。您可以使用流和函数编程在Java 8中执行许多常见的LINQ操作,例如:

Class1[] arr = ...
List<Class1> filteredList = stream(arr).filter(e -> e.member1 == val).collect(toList());
Class1[]arr=。。。
List filteredList=stream(arr).filter(e->e.member1==val.collect(toList());
这将生成一个元素列表,其中
member1
等于
val

有关更多示例,我将参考此软件包:


如果Java 8不可用,那么您必须求助于使用simple for循环(或者下载一个库来为您执行此操作)。

您正在寻找的是Java 8的一部分。但是如果您有Java 7或更低版本,最好的方法就是自己编写条件。Java.util.stream不在我的系统库中,我应该从某处下载并添加它吗?很抱歉,我找不到它的下载链接。你有哪个版本的Java?这是Java8。好的,我会检查一下。我最近安装了eclipse,这是我用java编写的第一个程序。我不确定。谢谢,这看起来与linq非常相似。我正在使用这个流,但我不需要导入java.util.stream。*在我的项目中,当我将鼠标悬停在stream()函数上时,它会显示java.util.collection.stream(),我希望确保我正确使用它。因为我的计划似乎要花很长时间才能完成。