2016-12-07 3 views
0

Я смущен и зациклен на том, как найти максимальное и минимальное количество моего кода в массиве. Я должен использовать Integer.MAX_Value и Integer.MIN_Value.Как найти минимальное и максимальное значение с помощью Integer.MAX_VALUE?

public class AnnualFuelUseTester 
{ 
public static void main(String [] args) 
{ 
    int sMiles1, eMiles1, dist; 
    double price , gallons, mpg, GPM; 
    int counter = 0; 
    int total; 

    AnnualFuelUse[] annual = {new AnnualFuelUse(12700,12751,51,2.8), 
           new AnnualFuelUse(12802,12908,106,5.8), 
           new AnnualFuelUse(12908,13014,106,5.8)}; 

    int max = Integer.MIN_VALUE; 
    int min = Integer.MAX_VALUE; 
    for(int index = 0; index < annual.length; index++) 
    { 
     annual[index].calcDistance(); 

     annual[index].calcMPG(); 

     annual[index].calcTotal(); 
    } 
    System.out.println(

    "Fill up Start Miles End Miles Distance Gallons Used MPG Price Cost"); 
    for(int index = 0; index < annual.length; index++) 
    { 
     System.out.printf(" %d  %6d  %5d %5d   %.2f  %.2f %.2f %.2f\n", 
       index + 1, 
       annual[index].getStart(),annual[index].getEnd(), 
       annual[index].getDist(), annual[index].getGal(), 
       annual[index].getMPG(), annual[index].getPrice(), 
       annual[index].getTotal()); 

    } 
    System.out.println("Minimum: " + max); 
} 
} 

А вот мой другой класс, используемый вместе

public class AnnualFuelUse 
{ 
private int sMiles1, eMiles1,dist; 
private double price, gallons, mpg, total, GPM; 

AnnualFuelUse(int s1, int e1, int distance, double gals) 
{ 
    sMiles1 = s1; 
    eMiles1 = e1; 
    dist = distance; 
    price = 1.83; 
    gallons = gals; 
} 

public void calcDistance() 
{ 
    dist = eMiles1 - sMiles1; 
} 

public double getPrice() 
{ 
    return price; 
} 

public void calcMPG() 
{ 
    mpg = dist/gallons; 
} 

public int getStart() 
{ 
    return sMiles1; 
} 

public int getEnd() 
{ 
    return eMiles1; 
} 

public int getDist() 
{ 
    return dist; 
} 

public double getMPG() 
{ 
    return mpg; 
} 

public double getGal() 
{ 
    return gallons; 
} 

public void calcTotal() 
{ 
    total = 1.83 * gallons; 
} 

public double getTotal() 
{ 
    return total; 
} 
} 

Я прошу краткий пробегает о том, как найти минимум и максимум массивов. Особенно конкретные числа, которые являются одинаковыми (например, 51,106 - мои расстояния)

ответ

0

Я боюсь, что я должен угадать, какую ценность вы хотели бы свести к минимуму или максимизировать. Так что будь это расстояние, потому что вы хотите использовать значение Integer.

int max = Integer.MIN_VALUE; 
int min = Integer.MAX_VALUE; 
for(int index = 0; index < annual.length; index++) 
{ 
    annual[index].calcDistance(); 
    if (annual[index].getDist() < min) annual[index].getDist() = min; 
    if (annual[index].getDist() > max) annual[index].getDist() = max; 
    annual[index].calcMPG(); 

    annual[index].calcTotal(); 
    .... 

} 

Если используется двойное значение, иметь в виду, что Double.MIN_VALUE является mnallest значение двойной может иметь. Вместо этого вам понадобится -Double.MAX_VALUE.