我正在寻找一种更好的方法来过滤ArrayList的内容
例如,该程序有一个名为“ students”的主ArrayList,然后我从该列表的内容中创建了其他子列表(oldStudents,youngStudents,stupidStudents,smartStudents。目标是根据学生的用户选择过滤ArrayList。 (年幼,年老,聪明或愚蠢)
print(filtered_list)
[('item', 2.3), ('item', 7.0)]
它正在工作,但我相信有更好的方法来实现这一目标
答案 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 name
,boolean old
和boolean 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来过滤列表。在此链接中,您可以找到其他示例: