java集合框架

一、线程安全的集合类:
1、向量类 Vertor : 除了多了同步方法,其他的和ArrayList是一样的。底层是数组
2、栈类 Stack  先进后去
3、哈希表 Hashtable : 除了多了同步方法,其他的HashMap一样的,但是key和value都不能为null,而HashMap可以为null

二、非线程安全的集合类
规则集:
1、散列集 HashSet  
        无序,底层是HashMap
2、链式散列集 LinkedHashSet  
        插入顺序,用链表实现来扩展HashSet  底层是LinkedHashMap
3、树形集 TreeSet 
       按比较器顺序, 底层是 TreeMap
线性表:
1、ArrayList 底层是数组, 随机访问元素优先使用
2、LinkedList 底层是双向链表, 随机插入和删除优先使用
图:
1、散列图 HashMap  
      无序,底层是 Entry[]数组,数组中的每一项又是一个链表
     jdk8以前是使用数组和链表存储,jdk8以后采用了数组、链表和红黑树存储
当我们往HashMap中put元素的时候,先根据key的hashCode重新计算hash值,根据hash值得到这个元素在数组中的位置(即下标), 如果组该位置上已经存放有其他元素了,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放在链尾。如果数组该位置上没有元素,就直接将该元素放到此数组中的该位置上。
2、链式散列图 LinkedHashMap
     插入顺序 或 访问顺序  底层:哈希表(格式像数组链表的组合)链接列表
LinkedHashMap 实现与 HashMap 的不同之处在于,LinkedHashMap 维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可以是插入顺序或者是访问顺序。
3、树形图 TreeMap
    按比较器顺序  底层是红黑树
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值