簡體   English   中英

為什么我的數組包含相同的元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM