java:无法在指定索引的列表中保存

时间:2014-11-26 06:18:12

标签: java list

我正在尝试使用java.util.List.add(int location, Object object)

将对象添加到List

当我添加第一个Object时,它会被存储在如下屏幕截图所示的位置(不知道为什么索引是9但我希望它存储在索引0处)

以下是我的代码

InstructionCRUDTO instructionCRUDTO = new InstructionCRUDTO();
    List<InstructionCRUDTO> instructionCRUDTOListCRDB = new ArrayList<InstructionCRUDTO>();
    int instructionCount = 0;
    for(InstructionTemplate instruction : recurringInstructionGroup.getInstructions())
    {   
        instructionCRUDTO.setExecutionDate(Long.valueOf(instruction.getDetails().getExecutionDate().getTime()));

        instructionCRUDTOListCRDB.add(instructionCount,instructionCRUDTO);
        instructionCount++;
    }

AddToFirstIndex

当我将第二个对象添加到列表中时,第一个对象将被第二个对象覆盖。 我的问题是,我无法将最初添加的对象存储在列表中。最后插入的对象将覆盖已添加的对象。请参考下面的截图。

我只是想使用java.util.List.add(Object)代替List.add(inst Location, Object object),但它不能正常工作。

LastInsertion

1 个答案:

答案 0 :(得分:0)

只有一个InstructionCRUDTO个实例,它总是相同的(在循环外创建) 因此,您在列表中创建的每个add都会在不同的索引处添加相同的对象。

在for-loop中移动InstructionCRUDTO instructionCRUDTO = new InstructionCRUDTO();以修复&#34;问题&#34;