Ahoj kluci, ako môžem výstup dvoch hodnôt samostatne a postupne som sa vrátil z tejto metódy?
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};
Tu je to, čo je v metóde main ():
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));
Tieto sysout mi dávajú niečo podobné: [I @ 55f96302 a [I @ 3d4eac69, resp. Vysvetlite prečo a ako opraviť ... veľmi pekne ďakujem
odpovede:
0 pre odpoveď č. 1Tlačíte hodnotu poľa, ktoré jeobjekt, preto zavolá metódu Array.toString (). V predvolenom nastavení metóda toString () vráti "reťazec pozostávajúci z názvu triedy, ktorej objekt je inštancia, znaku znaku" @ "a hexadecimálneho zobrazenia hash kódu bez znamienka. Inými slovami, táto metóda vracia reťazec rovný hodnote:
getClass (). getName () + "@" + Integer.toHexString (hashCode ()) "(z Javadoc)
Takže vo vašom prípade budete pravdepodobne potrebovať (vyhnúť sa výpočtu poľa dvakrát):
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]);