嘿伙计们,我如何单独输出这两个值并按顺序从这个方法返回?
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};
这是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));
这些sysout给我这样的东西:[I @ 55f96302和[I @ 3d4eac69,分别。请解释为什么以及如何解决...非常感谢
答案 0 :(得分:0)
您正在打印一个Array的值,它是一个Object,因此调用Array.toString()方法。默认情况下,toString()方法将返回“一个字符串,该字符串由对象为实例的类的名称,符号字符”@“和对象的哈希码的无符号十六进制表示形式组成。换句话说,此方法返回一个等于值的字符串:
getClass()。getName()+'@'+ Integer.toHexString(hashCode())“(来自Javadoc)
所以在你的情况下你可能需要(避免两次计算数组):
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]);