繁体   English   中英

get(int index)和elementAt(int index)有什么区别?

[英]What's the difference between get(int index) and elementAt(int index)?

向量有两种方法可以使元素位于一个索引处。

Vector<Integer> matrix;
matrix = new Vector<Integer>;
matrix.get(0);
matrix.elementAt(0);

看来他们在这里做同样的事情。

区别在于,像Hashtable和Stack这样的Vector是遗留类,它们在1998年的Java 1.2中进行了重新设计,以替换为ArrayList。

elementAt(int)是旧方法

get(int)符合15年前添加的List接口。

简而言之,除非确实需要,否则不要使用Vector。

他们俩都做同样的工作。 您可以访问Vector#elementAt(int)Javadoc,其中明确指出:

此方法的功能与get(int)方法(属于List接口的一部分)相同。

好吧,您不应再在新代码中使用Vector 这是旧类,很久以前就被ArrayList取代。 而且, Vector中定义的每个操作都是同步的,这在大多数时候是不需要的。 而且,无论何时需要,都应该改用Collections.synchronizedList

而且,您也无法像在代码中那样创建参数化类型的数组。 因此,您的代码甚至无法编译。

new Vector<Integer>[100];  // This will not compile. Error: Generic Array Creation

根据文档

从Java 2平台v1.2开始,对该类进行了改进以实现List接口,使其成为Java Collections Framework的成员。 与新的集合实现不同,Vector是同步的。 如果不需要线程安全的实现,建议使用ArrayList代替Vector。

这样get()添加了get() method

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM