Java初学者。我正在尝试将ArrayList中的Result对象添加到Array(稍后进行排序)。我知道ArrayLists可能会更好用,但我需要在这个赋值中使用至少一个数组。
在我的代码中,我制作了一个数组的副本,该数组是类Event的一个实例,我正在尝试迭代它并添加来自不同Participant对象的最佳结果。当我运行它时,只是最近添加的参与者的最佳结果被添加到数组(所有索引中的相同对象)。如何添加列表中所有对象的结果?
public void createBestResultArray(Event e) {
resultArray = Arrays.copyOf(resultArray,e.getParticipantAmount());
for(Participant p1 : participantsInEvent){
for (int i = 0; i < resultArray.length ; i++){
resultArray[i] = p1.getBestResult(e);
}
}
System.out.print(Arrays.toString(resultArray));
}
答案 0 :(得分:2)
您需要更改for循环。假设participantsInEvent
是List
,请按如下方式更改循环:
for(int i=0;i<participantsInEvent.size();i++) {
resultArray[i] = participantsInEvent.get(i).getBestResult(e) ;
}
您问题中的第一个for循环需要来自participantsInEvent
的参与者。第二个for循环然后将参与者最佳结果复制到resultArray
中的所有索引位置。对每个参与者重复该过程。您自然会留下resultArray
,其中包含participantsInEvent
集合中最后一位参与者的最佳结果。