有没有更好的方法来编写这段代码?(在数组中查找最小数和最大数)[Java]

Hel*_*rld 0 java arrays algorithm search

所以我有这段代码,它基本上是试图找到数组中的最大数字和最小数字(这里是票价)。但是我发现自己写了两个 for 循环,我想知道是否有更有效的方法来写这个?

    /** Setting cheapestCost to the index of the cheapest transport obj*/
    for(int i = 0; i < 15; i++) {
        if(allTransports[cheapestCost].getTicketPrice() > allTransports[i].getTicketPrice()) {
            cheapestCost = i;
        }
    }
        
    /** Setting greatestCost to the index of the most expensive transport obj*/
    for(int i = 0; i < 15; i++) {
        if(allTransports[greatestCost].getTicketPrice() < allTransports[i].getTicketPrice()) {
            greatestCost = i;
        }
    }
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 9

在我看来,您可以将这两个循环结合起来:

for(int i = 0; i < 15; i++) {
    int price = allTransports[i].getTicketPrice();

    if(allTransports[cheapestCost].getTicketPrice() > price) {
        cheapestCost = i;
    }

    if(allTransports[greatestCost].getTicketPrice() < price) {
        greatestCost = i;
    }
}
    
Run Code Online (Sandbox Code Playgroud)