知识大全 Vector还是ArrayList这是个问题

Posted 元素

篇首语:新的一天你要加油,不要辜负你的一生,让自己活得更有意义。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Vector还是ArrayList这是个问题相关的知识,希望对你有一定的参考价值。

Vector还是ArrayList这是个问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   API   在由Ken Arnold等编著的《Java Programming Language》(Addison Wesley June )一书中有这样的描述 Vector类似于ArrayList 所有从API的角度来看这两个类非常相[b]似 但他们之间也还是有一些主要的区别的      同步性  Vector是同步的 这个类中的一些方法保证了Vector中的对象是线程安全的 而ArrayList则是异步的 因此ArrayList中的对象并不是线程安全的 因为同步的要求会影响执行的效率 所以如果你不需要线程安全的集合那么使用ArrayList是一个很好的选择 这样可以避免由于同步带来的不必要的性能开销      数据增长  从内部实现机制来讲ArrayList和Vector都是使用数组(Array)来控制集合中的对象 当你向这两种类型中增加元素的时候 如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度 Vector缺省情况下自动增长原来一倍的数组长度 ArrayList是原来的 % 所以最后你获得的这个集合所占的空间总是比你实际需要的要大 所以如果你要在集合中保存大量的数据那么使用Vector有一些优势 因为你可以通过设置集合的初始化大小来避免不必要的资源开销      使用模式  在ArrayList和Vector中 从一个指定的位置(通过索引)查找数据或是在集合的末尾增加 移除一个元素所花费的时间是一样的 这个时间我们用O( )表示 但是 如果在集合的其他位置增加或移除元素那么花费的时间会呈线形增长 O(n i) 其中n代表集合中元素的个数 i代表元素增加或移除元素的索引位置 为什么会这样呢?以为在进行上述操作的时候集合中第i和第i个元素之后的所有元素都要执行位移的操作 这一切意味着什么呢?  这意味着 你只是查找特定位置的元素或只在集合的末端增加 移除元素 那么使用Vector或ArrayList都可以 如果是其他操作 你最好选择其他的集合操作类 比如 LinkList集合类在增加或移除集合中任何位置的元素所花费的时间都是一样的—O( ) 但它在索引一个元素的使用缺比较慢-O(i) 其中i是索引的位置 使用ArrayList也很容易 因为你可以简单的使用索引来代替创建iterator对象的操作 LinkList也会为每个插入的元素创建对象 所有你要明白它也会带来额外的开销   最后 在《Practical Java》一书中Peter Haggar建议使用一个简单的数组(Array)来代替Vector或ArrayList 尤其是对于执行效率要求高的程序更应如此 因为使用数组(Array)避免了同步 额外的方法调用和不必要的重新分配空间的操作 cha138/Article/program/Java/Javascript/201311/25471

相关参考

知识大全 Vector在Java编程中的应用

Vector在Java编程中的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Vector类

知识大全 Java程序的性能优化StringBuffer与Vector

Java程序的性能优化StringBuffer与Vector  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 修改ArrayList里面的内容

修改ArrayList里面的内容  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天学到了一个方

知识大全 ASP中的ArrayList类

ASP中的ArrayList类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用方法如下  程

知识大全 Java中ArrayList和LinkedList区别

Java中ArrayList和LinkedList区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 vb.net中应用ArrayList 实例

vb.net中应用ArrayList实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Arra

知识大全 JAVA中的容器 list vector set map

JAVA中的容器listvectorsetmap  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 我家的猫咪打喷嚏流出来的鼻涕是黄色的 还是连续打好几个 这是为什么阿

我家的猫咪打喷嚏流出来的鼻涕是黄色的还是连续打好几个这是为什么阿?感冒的正常现象为什么我一打喷嚏就连续打好几个呢?让我根据自己的经验分析一下.一般情况下,过敏性鼻炎最容易出现这种情况。一般发生于清晨、

知识大全 女友说她常常不高兴的时候还是会想到父母亲,这是不是我没有安全感的问题

女友说她常常不高兴的时候还是会想到父母亲,这是不是我没有安全感的问题?但也会想我,也喜欢依赖我,抱你给的爱和父母给的爱是不同的,这和你对她的安全感没有关系,想父母是很正常的他说无论高兴还是不高兴的时候

知识大全 请我我是女孩子还是学生,晚上在家里裸体睡觉有那些坏处,这是不良坏习惯吗

请我我是女孩子还是学生,晚上在家里裸体睡觉有那些坏处,这是不良坏习惯吗?没有坏处只有好处的孩子的80%的坏习惯是在家里养成的吗看到您的问题将要被新提的问题从问题列表中挤出,问题无人回答过期后会被扣分并