java常用集合类
  • 首页 > >
  • 作者:Saber
  • 2017年6月19日 19:33 星期一
  • 浏览:175 次
  • 字号:    
  • 评论:0 条   编辑
  • 时间:2017-6-19 19:33   浏览:175  



    List结构的集合类:ArrayList,LinkedList,Vector,Stack

    Map结构的集合类:HashMap,HashTable,LinkedHashMap

    Set结构的集合类:HashSet,TreeSetLinkedHashSet

    Queue结构的集合:Queue接口



    总结:

    1)如果要求线程安全,使用Vector,Hashtable

    2)如果不要求线程安全,使用ArrayList,LinkedList,HashMap

    3)如果要求键值对,则使用HashMap,Hashtable

    4)如果数据量很大,又要求线程安全考虑Vector

     

    1.ArrayList: 元素单个,效率高,多用于查询

    2.Vector:    元素单个,线程安全,多用于查询

    3.LinkedList:元素单个,多用于插入和删除

    4.HashMap:   元素成对,元素可为空

    5.HashTable: 元素成对,线程安全,元素不可为空

     

    ArrayList

    底层是Object数组,所以ArrayList具有数组的查询速度快的优点以及增删速度慢的缺点。

    而在LinkedList的底层是一种双向循环链表。在此链表上每一个数据节点都由三部分组成:前指针(指向前面的节点的位置),数据,后指针(指向后面的节点的位置)。最后一个节点的后指针指向第一个节点的前指针,形成一个循环。

    双向循环链表的查询效率低但是增删效率高。

    ArrayList和LinkedList在用法上没有区别,但是在功能上还是有区别的。

     

    LinkedList

    经常用在增删操作较多而查询操作很少的情况下:队列和堆栈。

    队列:先进先出的数据结构。

    栈:后进先出的数据结构。

    注意:使用栈的时候一定不能提供方法让不是最后一个元素的元素获得出栈的机会。

     

    Vector

    (与ArrayList相似,区别是Vector是重量级的组件,使用使消耗的资源比较多。)

    结论:在考虑并发的情况下用Vector(保证线程的安全)。

    在不考虑并发的情况下用ArrayList(不能保证线程的安全)。



     您阅读这篇文章共花了: 
    返回顶部 返回首页
  • 文章:2 篇
  • 评论:0 条
  • 微语:0 条
  • 友链:2 个
  • 分类:0 个
  • 标签:4 个
  • 作者:1 人
  • 建站日期: