zoukankan      html  css  js  c++  java
  • Java集合类总结

    Java的集合类关系图,摘自网络:





    List:

    1,ArrayList:内部采用数组存储结构;随机查找效率高,增删效率低;线程不安全;

    2,LinkedList:内部采用链表存储结构;增删效率高,查找效率低;线程不安全;

    3,Vector:与ArrayList没啥区别,源码也和ArrayList实现类似;自带同步,线程安全;

    4,Stack:继承自Vector;提供push,pop方法,先进后出;线程安全;

    5,Queue:为什么归到这里呢?本来是单独的一类,不过在SUN的JDK里就是用LinkedList来提供这个功能的,主要方法是offer/pull/peek。


    Set:add/remove。

    1,HashSet:内部采用HashMap实现的;线程不安全;

    2,LinkedHashSet:内部采用LinkedHashMap实现;线程不安全;

    3,TreeSet:内部采用TreeMap实现;线程不安全;

    Map:put/get/remove。

    1,HashMap:依据hash表,内部用数组链表实现;线程不安全;

    2,HashTable:依据hash表,内部用数组链表实现;自带同步,线程安全;

    3,ConcurrentHashMap:由于HashMap没有实现同步,执行效率比HashTable高;而HashTable自带同步,当表很大时,执行效率就会很低,ConcurrentHashMap综合了

    HashMap和HashTable的优点:实现了线程同步,而且是用分桶的做法,将元素划分到一个个桶中,然后分别对每个桶加锁,这样,就能实现多个桶之间访问数据的并发,提

    高了执行效率;线程安全;

    4,LinkedHashMap:继承自HashMap,但在数组的基础上实现了链表功能,各个元素(节点)之间存在前后引用的关系,通过重写嵌套类HashMap.Entry实现了链表结构,

    同样有容量的问题;

    5,Properties:继承自HashTable。

    6,WeekHashMap:用于在系统GC时的垃圾回收,可参考文章:java对象:强,软,弱和虚引用详解


    后续继续追加。

  • 相关阅读:
    HTML中ID与NAME的区别
    三层架构的学习感悟(二)
    linux svn安装和配置,不结合apache
    _dopostback回发后台的局限
    ASP.NET 服务器端控件响应客户端事件
    linux centos 下面httpd支持的svn 服务器端安装
    最简单的html tab选项卡
    VC2010 控件的事件窗口面板空白解决办法
    记录一次低版本手机h5页面不能进行跳转
    设计模式的理解
  • 原文地址:https://www.cnblogs.com/marcotan/p/4256892.html
Copyright © 2011-2022 走看看