public static void main(String[] args) {
// TODO code application logic here
int[] sec = {1,2,3,4};
int[] b = new int[4];
Vector a = new Vector();
a.addElement(sec);
sec[0] = 10;
sec[1] = 20;
sec[2] = 30;
sec[3] = 40;
a.insertElementAt(sec,0);
for (int i = 0; i < a.size(); i++ ){
b = (int[])a.elementAt(i);
for(int j = 0 ;j < 4; j++){
System.out.println(""+b[j]);
}
System.out.println("\r\n==================");
}
a.removeAllElements();
a.clear();
}為什麼輸出的是
10
20
30
40
===========
10
20
30
40
===========
而不是
1
2
3
4
=======
10
20
30
40
呢???怎樣做才能實現呢?謝謝 ̄!
// TODO code application logic here
int[] sec = {1,2,3,4};
int[] b = new int[4];
Vector a = new Vector();
a.addElement(sec);
sec[0] = 10;
sec[1] = 20;
sec[2] = 30;
sec[3] = 40;
a.insertElementAt(sec,0);
for (int i = 0; i < a.size(); i++ ){
b = (int[])a.elementAt(i);
for(int j = 0 ;j < 4; j++){
System.out.println(""+b[j]);
}
System.out.println("\r\n==================");
}
a.removeAllElements();
a.clear();
}為什麼輸出的是
10
20
30
40
===========
10
20
30
40
===========
而不是
1
2
3
4
=======
10
20
30
40
呢???怎樣做才能實現呢?謝謝 ̄!
import java.util.Emumeration;
public class Avector{
public static void main(String args[])
{
0. Vector v=new Vector();
1. v.addElement("one");
2. addElement("two");
3. v.addElement("three");
4. v.insertElementAt("zero",0);
5. v.insertElementAt("oop",3);
6. v.setElementAt("three",3);
7. v.setElementAt("four",4);
8. v.removeAllElements();
}
}
Vector中的变化情况又是怎樣呢?
謝謝 ̄!
sec[1] = 20;
sec[2] = 30;
sec[3] = 40;
sec是同一个object的引用,他值已经变了,打印的当然一样了下面那个就是01234
// TODO code application logic here
int[] sec = {1,2,3,4};
int[] b = new int[4];
Vector a = new Vector();
a.addElement(sec);
sec=new int[4];
sec[0] = 10;
sec[1] = 20;
sec[2] = 30;
sec[3] = 40;
a.insertElementAt(sec,0);
for (int i = 0; i < a.size(); i++ ){
b = (int[])a.elementAt(i);
for(int j = 0 ;j < 4; j++){
System.out.println(""+b[j]);
}
System.out.println("\r\n==================");
}
a.removeAllElements();
a.clear();
}
a.addElement(new int[]{1,2,3,4});
a.insertElementAt(sec,0);
int size = a.size();
a.insertElement(sec,size - 1);
Vector a = new Vector();
a.addElement(sec);
只是把sec的引用加到了Vector中,
所以外面的sec和Vector里的是指向的同一块内存空间,改外面的也就改了里面的。
最好用2个sec1[],sec2[]int sec[] = new int[10];
int sec1[] = (int[]) sec.clone();
然后修改sec1[]然后+到Vector里面