列表覆盖所有元素

时间:2014-03-15 19:09:08

标签: java arrays list

我有Car类型的列表数组,但在for循环中我设置了一些变量字符串

但是在完成循环后我发现列表的最后一个元素是覆盖所有以前的元素

    Car testset = new Car();


private void populateRandomCars(List<Car> list, int size,
        List<Integer> teachers, List<String> state){
    try {
        for (int i = 0; i < size; i++)
            list.add(testset.add(getRandomColor(teachers.get(i)),
                    getRandomYear(state.get(i))
                    ));

汽车类:

    private String teachers;
private String state;

public Car add(String teachers,String state) {

    this.teachers=teachers;
    this.state=state;

    return Car.this;
}

2 个答案:

答案 0 :(得分:0)

首先,您的问题似乎不完整。 其次,要修复代码,只需添加

即可
Car car = new Car();// testset->car

populateRandomCars方法中。

然后它将创建并添加一辆新车。

答案 1 :(得分:0)

如果您只想在列表中添加Car对象。你的for循环应该每次实例化一个新的Car对象。

Car testset = null;

try {
  for (int i = 0; i < size; i++) {

  testset = new Car();

  list.add(testset.add(getRandomColor(teachers.get(i)), getRandomYear(state.get(i))));

  // Additional code goes here.

 } catch (Exception ex) {
   // Exception handling
 }