我在Vector中添加了一个数组,现在数组的值发生了改变,从而我怎样去改变Vector?

解决方案 »

  1.   

    先remove 再add或直接改变引用的值。
      

  2.   

    需要更改vector吗?不是已经有数组的引用了吗。貌似不用该。
      

  3.   

    更改了数组但是Vector没有更改
      

  4.   

    我也感觉不用改吧 你vector存的数组,应该是存的引用吧 。但数组内容发生改变了,也就是堆中数组的内容发生改变,而vector中存在的数据引用还是只想堆中的内容,取出来应该是修改过的内容了吧
      

  5.   

    同意2 3 楼兄弟的说法 如果楼主不相信 我这里给出个测试例子package com.yhz;import java.util.Iterator;
    import java.util.Vector;public class VectorTest { /**
     * @param args
     */
    @SuppressWarnings("unchecked")
    public static void main(String[] args) {

    Vector vector = new Vector();
    String s[] = new String[2];
    s[0]="1";
    s[1]="2";
    vector.add(s);
    System.out.println("vecory中数组内容");
    if(!vector.isEmpty()){
    for(Iterator iter =vector.iterator();iter.hasNext();){
    String str[] = (String[])iter.next();
    for (String string : str) {
    System.out.println(string);
    }
    }
    }

    s[0]="3";
    /*
    int indexOfStr = vector.indexOf(s);
    vector.remove(indexOfStr);
    vector.add(indexOfStr, s);*/
    System.out.println("修改后Vector的内容");
    if(!vector.isEmpty()){
    for(Iterator iter =vector.iterator();iter.hasNext();){
    String str[] = (String[])iter.next();
    for (String string : str) {
    System.out.println(string);
    }
    }
    }

    }}
    另外 针对这个问题 我看了一下api 
    insertElementAt
    public void insertElementAt(E obj,
                                int index)将指定对象作为此向量中的组件插入到指定的 index 处。此向量中的每个索引大于或等于指定 index 的组件都将向上移位,使其索引值变成比以前大 1 的值。
    索引必须为一个大于或等于 0 且小于或等于向量当前大小的值(如果索引等于向量的当前大小,则将新元素追加到向量)。此方法的功能与 add(Object, int) 方法的功能完全相同(后者是 List 接口的一部分)。注意,add 方法将反转参数的顺序,与数组用法更为匹配。 
    其中 红色部分是什么意思 ??请教高手