Olá pessoal, como eu faço a saída dos dois valores separadamente e sequencialmente eu retornei desse método?
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};
Aqui está o que está no método 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));
Estes sysout me dão algo assim: [I @ 55f96302 e [I @ 3d4eac69, respectivamente. Por favor, explique por que e como corrigir ... muito obrigado
Respostas:
0 para resposta № 1Você está imprimindo o valor de uma matriz, que éum objeto, portanto, chamando o método Array.toString (). Por padrão, o método toString () retornará "uma string que consiste no nome da classe da qual o objeto é uma instância, o caractere arroba` @ "e a representação hexadecimal não assinada do código hash do objeto. Em outras palavras, esse método retorna uma string igual ao valor de:
getClass (). getName () + "@" + Integer.toHexString (hashCode ()) "(do Javadoc)
Então, no seu caso, você provavelmente precisará (evitando calcular o array duas vezes):
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]);