美文网首页
java集合区别

java集合区别

作者: 一个简单搬运工 | 来源:发表于2018-01-09 21:54 被阅读13次

1. Vector & ArrayList

1)  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。

2) 当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

2. Hashtable & HashMap

Hashtable和HashMap它们的性能方面的比较类似 Vector和ArrayList,比如Hashtable的方法是同步的,而HashMap的不是。

3. ArrayList & LinkedList

ArrayList的内部实现是基于内部数组Object[],所以从概念上讲,它更象数组,但LinkedList的内部实现是基于一组连接的记录,所以,它更象一个链表结构,所以,它们在性能上有很大的差别:

从上面的分析可知,在ArrayList的前面或中间插入数据时,你必须将其后的所有数据相应的后移,这样必然要花费较多时间,所以,当你的操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能; 而访问链表中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,所以,当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。

如果在编程中,1、2两种情形交替出现,这时,你可以考虑使用List这样的通用接口,而不用关心具体的实现,在具体的情形下,它的性能由具体的实现来保证。

4. 配置集合类的初始大小

在Java集合框架中的大部分类的大小是可以随着元素个数的增加而相应的增加的,我们似乎不用关心它的初始大小,但如果我们考虑类的性能问题时,就一定要考虑尽可能地设置好集合对象的初始大小,这将大大提高代码的性能。

比如,Hashtable缺省的初始大小为101,载入因子为0.75,即如果其中的元素个数超过75个,它就必须增加大小并重新组织元素,所以,如果你知道在创建一个新的Hashtable对象时就知道元素的确切数目如为110,那么,就应将其初始大小设为110/0.75=148,这样,就可以避免重新组织内存并增加大小。

相关文章

  • Java--集合基础

    Java基础部分 1.集合 ArrayList和LinkedList的区别: 集合的区别 HashSet Hash...

  • Java基础(二)

    Java要点2 JAVA 集合类 1.JAVA常用集合类功能、区别和性能 两大类:Collections,Map;...

  • java集合区别

    1. Vector & ArrayList 1) Vector的方法都是同步的(Synchronized),是线程...

  • 2017年9月面试

    JAVA 1.集合ArrayList,LinkedList,Vector等区别HashMap,LinkedMap,...

  • Java 集合

    Java集合分4种体系:Set List Queue Map集合与数组的区别:集合可以保存数量不定的数据;集合可以...

  • 集合学习

    一、什么是集合 java集合类存放于java.until包下,是用来存放数据的一种容器。 二、集合与数组的区别 1...

  • Java集合框架概述

    前言 Java集合框架概述; 主要总述Java集合框架的设计理念, 组成和基本接口(及其区别等) 博客同步至个人博...

  • Java常用集合类功能、区别和性能

    面试时时被集合类各种虐,现在就来总结一下Java的集合类及其区别。 Java集合框架的基本接口、类层级结果如下:j...

  • BAT Java面试154道题分享~

    Java集合22题 ArrayList 和 Vector 的区别。 说说 ArrayList,Vector, Li...

  • 爬了各大搜索引擎,2019年Java面试题(集合+并发+调优+微

    Java集合22题 ArrayList 和 Vector 的区别。 说说 ArrayList,Vector, Li...

网友评论

      本文标题:java集合区别

      本文链接:https://www.haomeiwen.com/subject/zitkgxtx.html