我有幾個對象說:汽車,汽車,AUTOCAR的Java迭代一個列表,並加入到物體包含列表
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-1型/ CAR-2型/ CAR-3型)
我想我做錯了在這一行:
ac.setCars(carList);
如果我不清楚,請告訴我。
我不認爲這裏有足夠的信息。進入此循環之前,「carList」是否正確填充?你在其他地方更新嗎?你可以在進入循環之前檢查它的值嗎? –
你想獲得所有相同類型的汽車嗎?還是我誤會你? – sodik
您應該在循環的每次迭代中獲得一個新的'carList';否則,您在所有AutoCars中設置相同的列表 – yvilbe