Hey Jungs, wie gebe ich die beiden Werte getrennt aus und sequenziell bin ich von dieser Methode zurückgekehrt?
public static int[] getLargestAndSmallest (int[] numbers){ // semi-done
int largest = numbers[0];
int smallest = numbers[0];
for (int i = 0; i < numbers.length; i++){
if (numbers[i] > largest){
largest = numbers[i];
} else if (numbers[i] <= smallest){
smallest = numbers[i];
}
}
return new int[] {largest,smallest};
Hier ist was in main () Methode ist:
System.out.println(" The largest of the numbers is: " + getLargestAndSmallest(numbers));
System.out.println();
System.out.println(" The smallest of the number is: " + getLargestAndSmallest(numbers));
Diese sysouts geben mir so etwas: [I @ 55f96302 bzw. [I @ 3d4eac69]. Erklären Sie bitte, warum und wie Sie das Problem beheben ... Vielen Dank
Antworten:
0 für die Antwort № 1Sie drucken den Wert eines Arraysein Object und ruft daher die Array.toString () -Methode auf. Standardmäßig gibt die toString () - Methode "eine Zeichenfolge zurück, die aus dem Namen der Klasse, aus der das Objekt eine Instanz ist, dem Zeichen @, und der vorzeichenlosen hexadezimalen Darstellung des Hashcodes des Objekts besteht. Mit anderen Worten, diese Methode gibt einen String zurück, der dem Wert von entspricht:
getClass (). getName () + "@" + Integer.toHexString (hashCode ()) "(aus Javadoc)
In Ihrem Fall benötigen Sie wahrscheinlich (das Array muss nicht zweimal berechnet werden):
int[] largestSmallest = getLargestAndSmallest(numbers);
System.out.println("The largest of the number is: " + largestSmallest[0]);
System.out.println("The smallest of the number is: " + largestSmallest[1]);