如果我 希望在 集合里面放 集合,例如说 我希望 
Vector v = new Vector();
Vector sub_v = new Vector();
v.add(sub_v);但是 拿出来 强制转换的时候 发生 ClassCastException,请问如果有 类似 需要 应该 怎么办?有替代方案吗?如果可以,请讲一下发生异常的原因。感谢。

解决方案 »

  1.   

    v.add(sub_v); 返回一个boolean
      

  2.   

    vector就是 Vector<Vector<String>> v=new Vector<Vector<String>>();
    Vector<String> v1=new Vector<String>();
    v.add(v1);
      

  3.   

    import java.util.*;public class AddVector{
    public static void main(String args[]){
    Vector v = new Vector(); 
    Vector sub_v = new Vector(); 
    sub_v.add("haha");
    v.add(sub_v); 

    System.out.println(v.toString());
    }
    }没有问题啊  你是怎么拿的啊?贴出代码吧
      

  4.   

    构建向量是为了向里面添加元素。你那样将向量里面添加向量是没有意义的。
    boolean add(E o) 
              将指定元素追加到此向量的末尾 
    你取出来时会是向量中的元素 你里面没有放 所以就会出现异常了。如果出项将一个集合中的元素都加到另一个中去的话 还是用List方便
      

  5.   

    例如
    System.out.println(((Vector)v.get(0)).get(0));
      

  6.   


    感谢,长知识了但这回要用在 jdk1.3下,下回一定试试!
      

  7.   

    依然没问题  你是JDK什么版本啊?
    import java.util.*;public class AddVector{
    public static void main(String args[]){
    Vector v = new Vector(); 
    Vector sub_v = new Vector(); 
    sub_v.add("haha");
    v.add(sub_v); 

    System.out.println(((Vector)v.get(0)).get(0));
    }
    }
      

  8.   

    啊,忘了,问题可能没说完整代码 类似于:Vector v = new Vector();
    Vector sub_v = new Vector();
    sub_v.add(new String("haha"));
    v.add(sub_v);Iterator v_it = v.iterator();
    while(v_it.hasNext()){
        System.out.println(((Vector)v_it.next()).get(0));
    }
      

  9.   

    同样没有问题,可以执行...不过你的JDK是1.3的话我不敢保证,我没有1.3可以验证
      

  10.   

    向量其实也是一个容器。是容器的话就是为了存贮一个个的对象,好对这些对象进行灵活的访问。
    你向一个容器里面再加容器的话,原理上是没有错,因为容器也是一个对象。
    但是你以后访问的时候就会出现问题:当最顶层的容器中的子容器数目一多的话,
    访问就会发生混乱。因为你没有唯一的标识这些容器里面放的是什么东西。所以以后遇到这种情况的话,
    建议实现Map接口。这是我的代码 我刚运行了 没问题 其实你那样做是正确的 只是没有实际意义 呵呵package test;import java.util.Vector;public class VectorTest { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Vector v1 = new Vector();

    Vector v11 = new Vector();

    Vector v12 = new Vector();

    Vector v111 = new Vector();

    v1.add(v11);
    v1.add(v12);

    v11.add(v111);

    System.out.println(v1.size());

    Vector vv = (Vector)v1.elementAt(0);

    System.out.println(vv.size());
    }
    }