请问Vector类中的get和elementAt方法有什么区别

yuyistar 2008-03-22 03:22:36
请问Vector类中的get和elementAt方法有什么区别
...全文
1735 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
INTRUSTION 2010-04-27
  • 打赏
  • 举报
回复
学习学习。。。。。。。。。。。。。。。。
bmwdbm 2009-12-06
  • 打赏
  • 举报
回复
E不是笔误
是英文Entry的缩写
代表泛型

学习了咯!!
chensjmail 2008-03-31
  • 打赏
  • 举报
回复
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的开发人员必须要知道基本知识.

对于List的线程问题这个Vector不一定会好到哪支,我现在除非必要否则已经不用它了,如查有线程安全的问题可以用
Collections.synchronizedList(new ArrayList(...));

基实如果频繁使用到查打列表对象的话,建议使用LinkedList,它的性能更好。java这方面做得很好,还很全面,List的家族是很大的哦,呵呵

J寻 2008-03-31
  • 打赏
  • 举报
回复
学习了
okohisme 2008-03-30
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 ccyingfu 的回复:]
怎么不用ArrayList?
[/Quote]

ArrayList 相比 Vector 效率高 主要区别在于 Vector 考虑到线程安全问题 而ArrayList适合单线程。自己经常使用的是ArrayList。 还在学习中 回答的有问题还请多多包涵
sunshine521521 2008-03-30
  • 打赏
  • 举报
回复
我是个 java的菜鸟哦 不过听老师讲 Vector 已经胜利的淘汰了。。
ccyingfu 2008-03-30
  • 打赏
  • 举报
回复
怎么不用ArrayList?
xiaoyu_zhao1234 2008-03-30
  • 打赏
  • 举报
回复
也可以这样认为。
54powerman 2008-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 java2000_net 的回复:]
elementAt
public E elementAt(int index)返回指定索引处的组件。

此方法的功能与 get 方法的功能完全相同(后者是 List 接口的一部分)。

多看看API
[/Quote]

我想除了文档也该多看看书,不是完全一样,而是elementAt是为了向下兼容。
wanglovehuang 2008-03-29
  • 打赏
  • 举报
回复
哪么 E 是不是和js里面的var类型是一样的啊??
kaituozhe6666 2008-03-28
  • 打赏
  • 举报
回复
学习一下
shili150 2008-03-27
  • 打赏
  • 举报
回复
E
是笔误吗?

什么叫泛型?
chenxinli7915 2008-03-27
  • 打赏
  • 举报
回复
xuexi xuexi 学习来了
tanlingyun 2008-03-27
  • 打赏
  • 举报
回复
E就是泛型,看看java核心技术,里面有详细介绍
starcimon 2008-03-27
  • 打赏
  • 举报
回复
哦,原来如此。。。
我晕死哦 2008-03-26
  • 打赏
  • 举报
回复
菜鸟来学习学习,呵呵
网络咖啡 2008-03-22
  • 打赏
  • 举报
回复
是这样的,Vector原来是一个独立设计的类,大概从JDK1.4以后,把Vector纳入了集合框架,让他继承了List,所以需要实现List要求的功能,而为了和以前的程序兼容,就保留了两组功能一样的方法,明白了吧?
numb1126 2008-03-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lejuo 的回复:]
回复:public E elementAt(int index)中的E代表什么返回类型

是泛型吧
[/Quote]
对,就是泛型
numb1126 2008-03-22
  • 打赏
  • 举报
回复
饿。。。。。。E你可以理解为组件或者Object吧,就是你在向量里装入的那些东西的统称吧。get和elementAt是完全相同的。JAVA1.2以前Vector并不实现List接口,所以用着elemengtAt()方法。后来实现了List以后就拥有了List中的get()方法。List接口是不具有elementAt()方法的。

注:尽管elemengtAt()方法未过时,但首选使用方法是 get(int)。
  • 打赏
  • 举报
回复
回复:public E elementAt(int index)中的E代表什么返回类型

是泛型吧
加载更多回复(5)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧