【问题标题】:Return an array of values and output each value sequentially返回一个值数组并按顺序输出每个值
【发布时间】:2015-10-26 07:42:06
【问题描述】:

大家好,我如何分别输出从这个方法返回的两个值?

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));

这些系统输出给了我这样的信息:[I@55f96302 和 [I@3d4eac69,分别。请解释为什么以及如何解决...非常感谢您

【问题讨论】:

  • getLargestAndSmallest 的结果分配给一个变量,然后像使用任何普通数组一样简单地引用索引,value[0]...
  • 你能演示一下吗?
  • int[] value = getLargestAndSmallest(numbers); 然后使用System.out.println(" The largest of the numbers is: " + value[0]);System.out.println(" The smallest of the numbers is: " + value[1]);。查看Arrays TutorialReturning a Value from a Method 了解更多详情

标签: java arrays methods return


【解决方案1】:

您正在打印一个数组的值,它是一个对象,因此调用了 Array.toString() 方法。默认情况下,toString() 方法将返回“一个字符串,该字符串由对象作为其实例的类的名称、at 符号字符‘@’和对象的哈希码的无符号十六进制表示形式组成。在换句话说,此方法返回一个等于以下值的字符串:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 2021-06-18
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    相关资源
    最近更新 更多