2016-08-03 40 views
0

// Gibt es eine bessere Möglichkeit, die zurückgegebenen Informationen anzuzeigen, ohne das alles schreiben zu müssen, was ich im S.O.P geschrieben habe? Ziel ist es, den Wert zurückzugeben und ihn dann mit dem Namen und der Zeit des Rennfahrers zu verknüpfen. Vielen Dank für Ihre help.//Anzeigen des zurückgegebenen Wertes, der mit den anderen zwei Informationsfeldern verbunden ist

public class array_Test 
{ 
    public static void main(String args[]) 
    { 
     String[] names={"Bob", "Tj", "Aj"}; 
     double [] times={9.9,9.8,10.0}; 
     double x=findLargest(times); 

     System.out.print("The slowest racer was " + names[1] + " with a time of " 
     + times[1] + " at index position" + x); 
} 
    public static double findLargest(double[] times) 
    { 
     int indexOfLargest=0; 
     double largest=times[0]; 
     for(int i=0; i<times.length; i++) 
     { 
      if(times[i]>largest) 
      { 
       largest=times[i]; 
       indexOfLargest=i; 
      } 
     } 
     return indexOfLargest;      
    }} 

Antwort

0

Warum verwenden Sie keine Klasse? Sie können die Namen und die Zeiten der Rennfahrer mit so etwas zusammen:

public class Racer { 

private String name; 
private double time; 
private int position; 

public Person(String name, double time){ 
this.name = name; 
this.time = time; 
this.position =-1; 
    } 

public String getName() { 
    return name; 
    } 

public double getTime() { 
    return time; 
    } 

public int getPosition() { 
    return position; 
    } 

public void setPosition(int position) { 
    this.position = position 
    } 

@Override 
public String toString() { 
    return "The slowest racer was " + getName + " with a time of " 
    + getTime + " at index position" + getPosition); 
    }   
} 

Diese Klasse ermöglicht es Ihnen, Ihre „Racer“ zu verwalten easlier und die Überschreibung der Funktion toString() können Sie Ihre anpassen printl().

Sie können jetzt Ihren Code mit diesem ändern:

public class array_Test 
{ 
    public static void main(String args[]) 
    { 
     Racer[] people ={new Person("Bob",9.9),new Person("Tj",9.8),new Person("Aj",10.0)}; 

     double x=findLargest(times); 

     System.out.print(Racer[x].toString()); 
} 
    public static double findLargest(double[] times) 
    { 
     int indexOfLargest=0; 
     double largest=people[0].getTime(); 
     for(int i=0; i<people.length; i++) 
     { 
      if(people[i].getTime()>largest) 
      { 
       largest=people[i].getTime(); 
       indexOfLargest=i; 
      } 
     } 
     people[indexOfLargest].setPosition(indexOfLargest); 
     return indexOfLargest;      
    }} 
+1

ehrfürchtig. Ich weiß es zu schätzen, dass Sie sich die Zeit genommen haben, mir zu helfen! Vielen Dank. – Rudy