• 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对象:强,软,弱和虚引用详解


    后续继续追加。

  • 相关阅读:
    深度历险:Redis 内存模型详解
    Redis 的 8 大应用场景!
    Java并发计数器探秘
    更改系统环境设置,让alias永远生效
    GoldenGate中使用FILTER,COMPUTE 和SQLEXEC命令
    数据集成实例
    客户视角:Oracle ETL工具ODI
    OGG-00782
    Oracle过程包加密
    Concurrent Request:Inactive phase,No Manager status
  • 原文地址:https://www.cnblogs.com/marcotan/p/4256892.html
Copyright © 2020-2023  润新知