返回值数组并按顺序输出每个值

时间:2015-08-04 03:30:27

标签: java arrays methods return

嘿伙计们,我如何单独输出这两个值并按顺序从这个方法返回?

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,分别。请解释为什么以及如何解决...非常感谢

1 个答案:

答案 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]);