Java - 尝试打印由2个附加数组组成的数组时出错

时间:2014-05-23 20:47:22

标签: java arrays

我正在学习软件编程考试。在这里,我试图附加2个数组,但我得到的是: [I@17dfafd1

这是代码:

package examPreparation2014;
public class FirstExercise {
    public static void main(String[] args){
        int[] first = {1,2,3};
        int[] second = {4,5,6};

        System.out.print(FirstExercise.concatenator(first, second));
    }
    public static int[] concatenator(int[] first, int[] second){
        int[] concatenatedArray = new int[first.length + second.length];

        for (int i = 0; i<first.length ; i++){
            concatenatedArray[i] = first[i];
        }
        for (int i=0; i<second.length; i++){
            concatenatedArray[i+first.length] = second[i];
        }
        return concatenatedArray;
    }
}

PS:这是纸上考试,因此我无法导入库: - )

2 个答案:

答案 0 :(得分:3)

阵列也是对象,但它们不会覆盖Object's toString() method

  

换句话说,此方法返回一个等于值的字符串:

getClass().getName() + '@' + Integer.toHexString(hashCode())

这解释了你收到的奇怪的输出。

尝试Arrays.toString

  

字符串表示由数组元素的列表组成,用方括号括起来(&#34; []&#34;)。相邻元素由字符&#34;,&#34;分隔。 (逗号后跟空格)。

System.out.print(Arrays.toString(FirstExercise.concatenator(first, second)));

答案 1 :(得分:1)

在你的情况下,它打印对象类的toString()的默认实现。

只需使用每个循环来打印数组的所有值。

for (int i : concatenator(first, second)) {
    System.out.println(i);
}

使用org.apache.commons.lang.ArrayUtils

附加两个数组的简单方法
int[] both = ArrayUtils.addAll(first, second);