将许多元素添加到列表中而不实例化太多对象

时间:2017-11-30 10:21:02

标签: java arrays memory

我有一个for循环和ArrayList如下:

List<VehicleImpl> vehicles = new ArrayList<VehicleImpl>();
for(int i = 0; i < input.getNoVehicles(); i++) {
                                            //Name vehicle by index
    VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle " + String.valueOf(i+1))
            //The first location - depot location is indexed as 0 in Matrices
            .setStartLocation(Location.newInstance(i))
            .setBreak(lunch)
            .setLatestArrival(input.getOperating())
            .setType(type)
            .build();
    vehicles.add(vehicle);
}

所以,我想问一下:有没有办法在循环外实例化VehicleImpl并使用 ONLY ONE 实例。对于每次迭代,我修改实例将新版本的实例添加到列表中。

1 个答案:

答案 0 :(得分:0)

是的,但你必须克隆leat的第一个intance(例如,使用BeanUtils)。

然后你只需要更新startLocation属性。