我有几个对象说:汽车,汽车和 AutoCar
Car
- String name;
- String origin;
Auto
- String type;
AutoCar
- String type;
- List<Car> cars = new ArrayList<Car>();
迭代汽车列表:
List<Car> carList = //fetched from a service or method
List<AutoCar> acList = new ArrayList<AutoCar>();
for(Auto auto : autos){
AutoCar ac = new AutoCar();
ac.setType(auto.getType());
ac.setCars(carList);
acList.add(ac);
}
我期望结果:
Type = CAR-Type-1
Cars:
name: FORD
origin: US
name: Suzuki
origin: Japan
Type = CAR-Type-2
Cars:
name: Volkswagen
origin: Germany
name: Audi
origin: Germany
Type = CAR-Type-3
Cars:
name: Jaguar
origin: UK
name: Ferrari
origin: Italy
但是我得到的是保留的最后一次迭代......
Cars:
name: Jaguar
origin: UK
name: Ferrari
origin: Italy
适用于所有车型(CAR-Type-1/CAR-Type-2/CAR-Type-3)
我认为我在这一行做错了:
ac.setCars(carList);
如果我不清楚,请告诉我。
最佳答案
您需要为每辆汽车创建一个新的carList
,如果您重复使用相同的汽车列表,则每辆汽车将具有相同的汽车列表。
关于Java 迭代列表并添加到包含列表的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29847811/