如何正确过滤ArrayList的内容?

时间:2019-04-18 15:17:59

标签: java search arraylist filter

我正在寻找一种更好的方法来过滤ArrayList的内容

例如,该程序有一个名为“ students”的主ArrayList,然后我从该列表的内容中创建了其他子列表(oldStudents,youngStudents,stupidStudents,smartStudents。目标是根据学生的用户选择过滤ArrayList。 (年幼,年老,聪明或愚蠢)

print(filtered_list)

[('item', 2.3), ('item', 7.0)]

它正在工作,但我相信有更好的方法来实现这一目标

3 个答案:

答案 0 :(得分:1)

您可以使用这种方法:

find = {2, 3} # The elements we want to find
a = [1,2,2,3,4] # our list
x = [ind for ind, val in enumerate(a) if val in find]
print(x)

答案 1 :(得分:0)

Java是面向对象语言。使用它。

使用三个字段创建一个Student类:String nameboolean oldboolean smart。添加获取方法。

您现在可以轻松进行过滤,例如

// New list with dumb students
dumpStudents = studentList.stream().filter(s -> ! s.isSmart()).collect(Collectors.toList());

// Remove old people from list
studentList.removeIf(Student::isOld);

答案 2 :(得分:0)

在Java 8中,您可以使用Stream来过滤列表。在此链接中,您可以找到其他示例:

https://www.baeldung.com/java-stream-filter-lambda