java学习——集合(2)

容器:Collection+Map

Collection:List+Set+Queue

List:

CopyOnWriteArrayList、Vector、ArrayList、LinkedList

Vector:线程安全,因为其实现方法都是synchronized,也因此效率很低。其子类:Stack

ArrayList数组实现,LinkedList链表实现,线程不安全,但可以通过Collections工具类的synchronizedList()静态方法转化为SynchronizedList<>类型实现线程安全。

CopyOnWriteArrayList(JUC包下 ):底层用的lock 实现,一般情况下对一个list读取的非常多,改写非常少时使用。(扩展:为什么不是linked类型?原因:链表不适合复制)

Set:

HashSet、SortedSet、EnumSet、CopyOnWriteArraySet、ConcurrentSkipListSet

HashSet :hashMap 实现,其子类LinkedHashSet可以实现读取时的元素顺序与写入时元素顺序一致

SortSet:可排序的Set集合,其子类TreeSet由红黑树实现。

CopyOnWriteArraySet:适合读多写少

ConcurrentSkipListSet:基于链表结构,通过跳表实现查找,

Queue:

Deque:    ArrayDeque、BlockingDeque

BlockingQueue:ArrayBlockingQueue,LinkedBlockingQueue,PriorityBlockingQueue ,SynchronousQueue(容量为空),LinkedTransferQueue常被用于线程池,

ConcurrentLinkedQueue:CAS实现并发,效率相对高

PriorityQueue:基于小顶堆或大顶堆

DelayQueue:利用priorityQueue来实现的,

Map

HashMap、TreeMap、 WeakHashMap,ConcurrentHashMap,ConCurrentSkipListMap,identityHashMap

HashMap: LOAD_FACTORY(加载因子):0.75

INITIAL_CAPACITY:初始化容量:16

HashMap在JDK1.7是以数组加链表的形式组成,JDK1.8后新增了红黑树结构,当链表长度大于8并且容量大于64时,链表结构会转成红黑树结构。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值