繁体   English   中英

如何在 Java 中将数据保存在 ArrayList 中?

[英]How to save data in ArrayList in Java?

我在Company类中有一个 made 方法并在PayrollApp类中调用它。 首先! 它工作正常,但每当我第二次调用该方法时,它都会抛出indexoutofboundException 我在控制台上运行这个应用程序而不使用数据库。 我想将所有员工对象添加到该数组列表中。

public class Company {
    private ArrayList<Employee> _employeeList = new ArrayList<Employee>();
    public void setAddEmployee(Employee c){
        _employeeList.add(c);
    }
}

Employee emp = new Employee(_name, _empId);
emp.setNumOfHoursPerWeek(_hoursPerWeek);
emp.setHourlySalary(_hourlySalary);
emp.setManagerName(_manager);
Company com = new Company();

com.setAddEmployee(emp);

问题是索引iCompany的静态变量,而ArrayList _employeeList不是。

所以变量i被你的对象的所有实例共享,而你的 ArrayList _employeeList是一个实例变量。

所以当你第一次做company.setAddEmployee() ,它工作正常,因为 arrayList 和 i 都是空的,所以它可以工作,并且 i 增加到 1。

但是下次当您为不同的company对象执行company.setAddEmployee() ,该对象的 arrayList 为空,但 i 为1因为变量i是静态的,并由Company类的所有实例 (Object) 共享。

要么你需要让ArrayList静态的,要么你需要让i非静态(成员变量),尽管你甚至可能不需要i (我们也可以做_employeeList.add(<element>) ,它会在下一个可用索引),但我无法评论您如何解决该问题,因为我不确定您要使用代码实现什么目标。

暂无
暂无

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

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