Java集合概要

Java集合主要分为三种类型:Set、List 、Map,其中Set和List均实现了Collection接口,Map为单独的一类接口。集合类存储的是特定的类型,不能为基本类型。

其接口主要实现和继承关系如下:

Collection
├List
│├LinkedList  (底层是双向链表实现)
│├ArrayList (底层为对象数组,容量默认为10,扩容1.5,即每次增长原来的0.5倍)
│└Vector(底层为对象数组,容量默认为10,可按规定值扩容,默认为每次增长为原来的1倍,线程安全)
│ └Stack(继承Vector,操作都是对vectort底层操作的封装)
├Set 
│ ├ hasSet (底层是由hashMap实现的,hashMap 的key存储hasSet的元素,value采用默认静的object)
│ ├treeSet(底层为treeMap实现的,key存储元素,value采用静态的object)
├Queue
    ├priorityQueue

Map
├Hashtable(基本同hashMap,默认为11,只不过hashtable为线程安全的,不允许有null值,put, get 都加锁)
├HashMap(Entry链表+数组,默认容量为16,负载因子为0.75;长度大于n*16*0.75则容量增大一倍)
└WeakHashMap
└LinkedHashMap(底层为hashMap的Entry双向链表,继承自hashMap)
└TreeMap(底层为红黑树实现,继承自AbstractMap,而AbstractMap又实现了Map接口)
 LSortedMap
├concurrentHashMap(采用锁分离 来保证大并发的效率,Segment数组结构和HashEntry数组结构组成,table[]--hashTable  ,segments[]--table;put加锁,get不加锁)

接下来的几篇会详细介绍几个常用的集合类及其源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值