Java容器之List小结
时间:2022-04-27
本文章向大家介绍Java容器之List小结,主要内容包括列表、简述、2. 底层存储、3. 使用场景、4. 特性、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
列表
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);
- day9、用户登陆出现-bash-4.1$错误的原因及解决方法
- jboss eap 6.3 域(Domain)模式配置
- 揭穿数据分析的12个神话
- jboss eap 6.3 集群(cluster)配置
- Django中Q查询及Q()对象
- jboss eap 6.3 集群(cluster)-Session 复制(Replication)
- JSP中的Servlet及Filter
- Django ORM详解
- Web前端培训:怎样成长为一个优秀的Web 前端开发工程师?
- Git操作
- 人工智能做的肉,你想吃吗?
- 二、爬虫基础库
- 鱼与熊掌兼得,既要云服务创新也要管理传统网络
- Django-model进阶(中介模型,查询优化,extra,整体插入)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释