如果我 希望在 集合里面放 集合,例如说 我希望
Vector v = new Vector();
Vector sub_v = new Vector();
v.add(sub_v);但是 拿出来 强制转换的时候 发生 ClassCastException,请问如果有 类似 需要 应该 怎么办?有替代方案吗?如果可以,请讲一下发生异常的原因。感谢。
Vector v = new Vector();
Vector sub_v = new Vector();
v.add(sub_v);但是 拿出来 强制转换的时候 发生 ClassCastException,请问如果有 类似 需要 应该 怎么办?有替代方案吗?如果可以,请讲一下发生异常的原因。感谢。
Vector<String> v1=new Vector<String>();
v.add(v1);
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());
}
}没有问题啊 你是怎么拿的啊?贴出代码吧
boolean add(E o)
将指定元素追加到此向量的末尾
你取出来时会是向量中的元素 你里面没有放 所以就会出现异常了。如果出项将一个集合中的元素都加到另一个中去的话 还是用List方便
System.out.println(((Vector)v.get(0)).get(0));
感谢,长知识了但这回要用在 jdk1.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(((Vector)v.get(0)).get(0));
}
}
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));
}
你向一个容器里面再加容器的话,原理上是没有错,因为容器也是一个对象。
但是你以后访问的时候就会出现问题:当最顶层的容器中的子容器数目一多的话,
访问就会发生混乱。因为你没有唯一的标识这些容器里面放的是什么东西。所以以后遇到这种情况的话,
建议实现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());
}
}