Vector 本身就是为了向下兼容,所以楼上也有人说了它们的区别(此方法的功能与 get 方法的功能完全相同(后者是 List 接口的一部分))
Vector 现在已经被一系列的List所代替,
至于E
其实你看Vector 的类的定义的时候就可以看到 Vector<E>
它是java1.5之后的核心泛型,
简单的说它就是你在始化的时候可以指定的元素的类型,
这样在很类处理的时候就可以进行类型的检查,
免得在系统运行的时候才出错,
如:
Vector<Integer> v = new Vector<Integer>();
v.add(new Integer(1));
v.add(new String("55"));//无法编译通过
Integer i = v.elementAt(index);返回的就是一个Integer类型的对象.
在1.5以前(现在可能很多人都不会用泛型)也许大家都会这样:
Vector v = new Vector();
v.add(new Integer(1));
v.add(new String("55"));//编译通过,因为只要是Object的子类对象都可以存,学java的人都知道,所有的对象都是Object的子类,所以除了原始类型外都可以往里面丢.
Integer i = (Integer)v.elementAt(index);
如果你取到的时第二个那一定会出错的,因为它本身不是一个Integer类型的对象,必须自己显示的做类型检查.
但它的好处可能不只这些,可以看看java1.5的泛型,对于一个java的开发人员必须要知道基本知识.