System.out.println("Result is :"+ newArray);
改为
System.out.print("Result is :");
for(int i=0 ; i
}
其实你的程序本身没有错误,你这样打印可以!但是你这样打印不是打印数组里边的值,而是打印这个数组,你打印出来的那个东西应该是一个内存地址!你要想打印数组里边的值应该循环那个数组一条一条的打印!
数组是一个对象,你直接打印的话打印的是他在内存的地址,要用循环打印出来
原因分析:newArray里面存的是一个数组的地址,并不是你所存的值!所以显示出来的不是你想要的!
有关数组:newArray存的是一个数组首地址的变量,当程序执行到
int[] newArray = new int[first.length+second.length];
这一句的时候,计算机会给newArray分配一个指定大小的内存空间,而此时newArray的值也被赋成了所分配的内存空间的首地址了。
操作符"[]",相当于一个索引,里面的值相当于指定的偏移量,也就是你取出的第几个数,就是用newArray的值加上一个你指定的偏移地址找到的,这是计算机自动做的,不用你考虑。
所以你打印newArray只是打印了分配的内存的首地址,注意,只是个地址,可能每次运行都不同,因为给数组分配空间的首地址不同。
想显示newArray里的所有值可以考虑用for循环,把数组的值一个个打印就行了!
希望对你有所帮助!
因为newArray是个数组..数组是一个对象..直接打印对象..输出的是调用该对象的toString方法所返回的字符串..
[I@119298d [表示该对象是一个数组..I表示该对象是一个int数组..@表示at就是在哪里的意思..后面就是该对象在内存中的地址..
如果你想打印数据..
改成这样就是了..
public class T1
{
public static int[] insert(int[] first,int[] second)
{
int[] newArray = new int[first.length+second.length];
for(int i=0;i
newArray[i] = first[i];
}
for(int j=0;j
newArray[first.length+j]=second[j];
}
return newArray;
}
}
public class Driver
{
public static void main(String[] args)
{
T1 test = new T1();
int[] first = {1,2,3,4,5,6};
int[] second = {7,8,9};
System.out.println("This is Q3 test : ");
int[] newArray = test.insert(first,second);
System.out.print("Result is:[");
for(int i : newArray) {
System.out.print(i + " ");
}
System.out.print("]");
}
}