小弟初学JAVA,问题很菜,请见谅.
最近碰到一个问题,比如说我定义了一个int静态变量i,然后我又定义了一个int静态数组变量array,我想当i的值变化的时候把它赋值给array的第一个位置,i的值第二次改变的时候赋值到array的第二个位置,但是问题是array好像只是复制了i的地址,并不是i的值,所以说当i的值改变的时候array前面所有的值都会跟着变,我应该怎么办?谢谢.
最近碰到一个问题,比如说我定义了一个int静态变量i,然后我又定义了一个int静态数组变量array,我想当i的值变化的时候把它赋值给array的第一个位置,i的值第二次改变的时候赋值到array的第二个位置,但是问题是array好像只是复制了i的地址,并不是i的值,所以说当i的值改变的时候array前面所有的值都会跟着变,我应该怎么办?谢谢.
array[0] = new Integer(i);
....
每次变化时将i封装成Integer放入array
否则他指向的就是i,
我这个最后输出1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 public class DIRGBNDSF {
static float i = 0; static float array[] = new float[10]; public static void main(String[] args) {
for (int k = 0; k < 10; k++) {
i += 1;
array[k] = new Float(i);
}
for (int k = 0; k < 10; k++) {
System.out.print(array[k] + " ");
}
}
}
ioriyzsnfdf (ioriyzsnfdf)你自己的代码里一定是某个循环的控制有问题。
好好检查一下。
static Float array[] = new Float[10];
记住,原始类型(像int、float)是传值的,所以你改变了其值就是改变了其实际的值,
而类对象是引用的(类似于指针),你改变引用值并不改变原本引用所指向的值
这句声明错了,应该是static float array[] = new float[length];
然后再调用循环把i的值赋进array中。
===============================================================================
我们用java来解决实际问题。java技术交流,讨论java的技术细节和最新技术。欢迎中高级程序员以及渴望学习java技术的初学者加入讨论。QQ群:3001581
static int i;
static int arr[]=new int[10];
public static void main(String args[]){
for (int a = 0; a < 10; a++) {
i++;
arr[a]=i;
}
for (int a=0;a<10;a++){
System.out.println(arr[a]);
}
}
}
{
static float i = 1;
public static void main(String[] args)
{
float array[] = {0,0,0,0,0,0,0,0,0,0};
for (int k = 0; k < 10; k++)
{
//改变i值
i = k;
//把同一个变量放到数组中
array[k] = i;
}
for (int k = 0; k < 10; k++)
{
System.out.print(array[k] + " ");
}
}
}
看我的代码是不是能帮你?我是按照你的意思写的,但是没有你说的那种情况发生,输出是0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0
========================================================
QQ群:3001581,也许上面的人可以在线帮你解决好多问题