我的方法无法正确比较阵列列表中的项目以给我最大值 - 仅返回索引(0)



我无法弄清楚为什么此方法仅返回索引(0),而不会循环浏览阵列列表以比较其他元素...思想?

public Shipment getLargest() {
    //Set variable to equal a largest element
    Shipment largest = (Shipment)shipmentList.get(0);
    //Loops through and compares Shipment element values
    for(int i=0; i<shipmentList.size() - 1; i++)
    {
        if((shipmentList.get(i)).equals(largest))
        largest = shipmentList.get(i);
    }
    //Returns largest Shipment element
    return  largest;    
 }

您的循环长度不正确。从for条件下删除-1。虽然i小于大小,但它将到达最后一个元素(size-1)

for(int i=0; i<shipmentList.size(); i++)

另外,您正在将"最大"值与平等值进行比较,何时应该检查以前的"最大"是否大于当前的"最大"。

最新更新