各位大侠,小弟菜鸟,想请问一下数组的问题
1. int [] array1;
public setArray(int [] array){
array1=array;
}
请问这样合法吗? 我想将一个数组赋给另一个数组的话,必须一个元素元素的赋值吗?
1. int [] array1;
public setArray(int [] array){
array1=array;
}
请问这样合法吗? 我想将一个数组赋给另一个数组的话,必须一个元素元素的赋值吗?
解决方案 »
- 关于jar包出现“A java Exception has occurred”的问题
- Java中的方法
- 怎么创建文件,保存,读取 一个数组a[8][8]?
- 向xml已存在的xml文件中添加节点内容
- 怎么获得某文件的创建 日期 时间,最后一次修改日期 时间 USING JAVA
- 求教几个问题,估计需要高手回答
- 有谁开发过用lunece做的搜索引擎吗,可否提供代码?
- applet 为何在我机上好好的,但在其它机上就话 class not found?
- 为什么会出现这样的编译信息呢?
- 请问,如何实现并处理JTree节点Multi-Selected?
- 用java给固定文本中固定行数追加三个A。有详细说明,高手来!
- java 回车字符问题
b=a;//只有一个组对象.通过a,b操作都是操作同一个对象.比如说进行了b[0]=-1;那么a[0]也就成了-1;
int a[] = new int[]{1,2,4};
int b[] = new int[a.length];
//循环赋值通过操作b[0]=-1;
a[0]还是原来的1;
你写的array1也就是array1的首地址 即array1【0】 如果说你传进实参的数组的首地址与array1【0】
的话 你那个就没错啊
private int []array;
public void setArray(int []array){
this.array=array;
}
public int[] getArray(){
return array;
}
public static void main(String[] args) {
int []array={1,2,3};
ArrayTest t=new ArrayTest();
t.setArray(array);
System.out.println(t.array.length);
}
}
java是面向对象的,当做对象的赋值理解简单多了。
{
public static void main(String[] args) {
int[] num1=new int[]{1,2,3};
int[] num2=new int[3];
System.arraycopy(num1,0,num2,0,num1.length);//注意arraycop()的用法
for(int i=0;i<=num2.length;i++)
{
System.out.println(num2[i]);
}
public setArray(int [] array){
array1=array;
} 这个是引用
二楼说的循环赋值 是复制
int m=new int[]{5,7,10};
sum1(m);
sum2(m);
System.out.println(m[0]);//结果应该是3
}static void sum1(int[] all){
all[0]=3;
}
static void sum2(int[] all){
int[] the=new int[3];
the[0]=all[0];
the[0]=1;
}
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
另外你的写法不是在复制,只是新建个引用而已.......想要复制,建议使用上面的方法.......别忘记给分啊!
int[] targetArray=new int[SourceArray.length];第一种方法
for(int i=0;i<SourceArray.length;i++){
targetArray[i]=SourceArray[i];
}第二种方法
int[] targetArray=(int[])SourceArray.clone();第三种方法
System.arraycopy(SourceArray,0,targetArray,0,SourceArray.length)
第一个和第二个0分别表示数组起始位置,
ceArray.length表示复制长度,这表示全部复制