Java容器之List小结
Java容器之List小结
小灰灰Blog 发表于2个月前
Java容器之List小结
  • 发表于 2个月前
  • 阅读 12
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: 列表相关知识学习小结

列表

List, ArrayList, LinkedList, ArrayCopyOnWriteList, Vector

简述

1. 列表划分为线程安全和线程非安全两类,其中:

线程安全: Vector, ArrayCopyWriteList

线程非安全:ArrayList, LinkedList

2. 底层存储

数组: ArrayList Vecotr ArrayCopyWriteList

链表:LinkedList

3. 使用场景

ArrayList

  • 底层为数组,适合随机访问
  • 动态插入删除可能涉及到数组长度重新分配

LinkedList

  • 底层为链表,适合频繁删除新增的场景
  • 随机访问不友好,需要遍历

Vector

  • 线程安全
  • 所有的方法都加锁,导致性能较差

CopyOnWriteArrayList

  • 线程安全
  • 读方法不加锁;修改方法加锁,一次只能一个线程访问
  • 修改时,会拷贝一份内容出来,对拷贝的结果进行操作,最后覆盖之前的内容

4. 特性

  • List 是有序的
  • ArrayList 默认空间大小为10
  • new ArrayList<>() 内部的数组实际上引用的是一个空数组
  • ArrayList 扩容规则
    • 增加原来空间大小的一半
    • 如果依然塞不下,则扩充到正好填充满的情况
  • 排序
    • Collections.sort(list, new Comparator(){xxx})
    • List的内容,实现了Comparater接口后,可以直接调用 Collections.sort(list);
标签: Java List 容器
共有 人打赏支持
粉丝 115
博文 107
码字总数 176984
×
小灰灰Blog
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: