[英]Why does my array contain the same elements?
Java初學者在這里。 我正在嘗試將Array列表中的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));
}
您需要更改for循環。 假設participantsInEvent
是一個List
,請如下更改循環:
for(int i=0;i<participantsInEvent.size();i++) {
resultArray[i] = participantsInEvent.get(i).getBestResult(e) ;
}
您問題中的第一個for循環將從partnersInEvent中獲取一個participantsInEvent
。 然后,第二個for循環將參與者的最佳結果復制到resultArray
中的所有索引位置。 對每個參與者重復此過程。 你自然只剩下resultArray
包含最后一個參與者,這是目前的最好成績participantsInEvent
集合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.