模型类
class Person {
private String id;
private String name;
private int age;
// Constructor
public Person(String id,String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
// Getter ve Setter metotları
public String getID() {
return id;
}
public void setID(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
这里主要
public static void main(String[] args) {
ArrayList<Person> personList = new ArrayList<>();
personList.add(new Person("1","John", 25));
personList.add(new Person("2","Alice", 30));
personList.add(new Person("3","Bob", 28));
我想这样过滤 FilterednewArraylist =(人员列表中的 id =1)
我尝试了集合和流过滤器,但不起作用
//啊啊啊啊啊啊aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊啊啊啊啊啊啊啊啊啊啊啊啊
正如您所指出的,流式传输和过滤是正确的选择:
List<Person> filteredList =
personList.stream()
.filter(p -> p.getID().equals("1"))
.collect(Collectors.toList());
如果您绝对必须有一个
ArrayList
而不是任何旧列表(这可能不是一个好主意,请参见例如 “编程到接口”意味着什么?),您可以使用 toCollection
而不是toList
:
ArrayList<Person> filteredArrayList =
personList.stream()
.filter(p -> p.getID().equals("1"))
.collect(Collectors.toCollection(ArrayList::new));