繁体   English   中英

如何在java中向对象列表添加元素

[英]How to add elements to an object list in java

public class Bus{
    private int seats;
    private List<People> currentPeople;
    
    public Bus(int seats){
      this.seats = seats;
    }
    
    public void passengers(List<People> boarders, List<People> deboarders){
    this.currentPeople.remove(deboarders);
    this.currentPeople.add(boarders);
    }

我正在尝试创建公交车上的人员列表。 我正在尝试从列表中删除 deboarders(下车乘客)并添加寄宿生(登机乘客)。 但是 Java 不允许我将寄宿生添加到 currentPeople 列表中。 People 是一个存储乘客姓名和票号的类。 这有什么帮助吗? 我一直试图解决这个问题几个小时。

要将对象集合添加到列表中,您需要使用addAll

this.currentPeople.addAll(boarders);

要从列表中删除一组对象,您需要使用removeAll

this.currentPeople.removeAll(deboarders);

请注意,为了比较并从列表中删除正确的元素, removeAll使用了equals方法。 所以你应该在你的People类中实现equals方法。

编辑:

People 类的equals方法:

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        People people = (People) o;

        if (ticketNumber != people.ticketNumber) return false;
        return name != null ? name.equals(people.name) : people.name == null;
    }

不要忘记初始化currentPeople列表,否则你会得到NullPointerException

将 add 更改为 addAll 并同样更改为删除。
正如 Federico 在评论中指出的那样,假设 People 已经实现了 equals 方法。

尝试 removeAll() 和 addAll() 方法,因为您将 Collection 作为参数传递。

不要忘记在构造函数中行尾的“;”。

this.currentPeople.removeAll(deboarders);
this.currentPeople.addAll(boarders);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM