
List集合
发布日期:2025-04-11 00:00:46
浏览次数:10
分类:精选文章
本文共 2644 字,大约阅读时间需要 8 分钟。
List集合详解:从基础到高级操作全解析
一、starUML的安装与使用
starUML 是一款功能强大的UML图工具,安装过程相对简单。解压后即可运行,无需复杂配置。打开工具后,点击菜单栏的Model,选择UseCaseDiagram即可创建用例图。通过拖拽UseCase和Subject,结合右键绘制元素之间的关系,就能快速生成高质量的用例图。
二、List集合的增删改查
在Eclipse中创建一个新的Java项目,右键新建包com.chendongli.list
。以下是List集合的常用操作示例:
1. 增加元素
Listlist = new ArrayList<>();list.add("aa");list.add("bb");
2. 查询元素
for (String s : list) { System.out.println(s);}
3. 修改元素
list.set(1, "老六");
4. 删除元素
Object obj = list.remove(1);System.out.println(obj + "aaa");
注意事项
- 删除操作时,建议使用
list.remove(index)
,避免在循环中直接修改集合。 - 避免在遍历集合时进行删除操作,会导致ConcurrentModificationException。
三、List集合的高级操作
1. 列表的增删改查优化
通过设置初始容量和增长因子,可以显著提升性能。例如:
ArrayList list = new ArrayList<>(100);// 初始化容量为100,增长因子为0.5
2. 列表的去重
使用List::contains
方法进行去重操作:
ArrayListlist = new ArrayList<>();list.add("aa");list.add("bb");list.add("bb");list.add("dd");list.add("aa");ArrayList uniqueList = new ArrayList<>();for (String s : list) { if (!uniqueList.contains(s)) { uniqueList.add(s); }}
3. 使用集合作为堆栈或队列
- 堆栈:新元素始终在顶部,使用
removeLast()
方法。 - 队列:先进先出,使用
remove()
方法。
四、List集合的内部优化
1. 列表的内存布局
List集合的底层采用动态数组存储,支持任意元素类型,且支持定容量和扩容。
2. 增长因子
增长因子决定了集合扩容时的效率。常见的增长因子值有0.5、1.5等。
3. 去重的原理
List集合的去重机制基于equals()
方法。如果自定义对象没有重写equals()
,则默认比较对象引用是否相同。
五、List集合的实际应用示例
1. 第三方接口调用
Listlist = new ArrayList<>();list.add("1");list.add("4");list.add("6");list.add("9");list.add("11");list.add("8");List filteredList = new ArrayList<>();for (String s : list) { if (Integer.parseInt(s) % 2 == 1) { list.remove(s); }}
2. 遍历方式对比
// 遍历方式一:for循环for (Object obj : list) { System.out.println(obj);}// 遍历方式二:索引循环for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i));}// 遍历方式三:迭代器Iterator it = list.iterator();while (it.hasNext()) { System.out.println(it.next());}
六、Linkedlist的特殊应用
1. 队列实现
public class QueueDemo { private LinkedList queue = new LinkedList(); public void enqueue(Object obj) { queue.add(obj); } public Object dequeue() { return queue.remove(); }}
2. 堆栈实现
public class StackDemo { private LinkedList stack = new LinkedList(); public void push(Object obj) { stack.add(obj); } public Object pop() { return stack.removeLast(); }}
七、List集合的性能优化
1. 初始化容量
通过设置初始容量,可以减少动态数组的扩容次数,提升性能。
2. 增长因子选择
增长因子选择合适值(如0.5或1.5)可以平衡内存使用和性能。
3. 内部优化
List集合的性能优化主要体现在以下几个方面:
- 动态数组的内存管理
- 智能的增长算法
- 复用性高的数据结构
八、List集合的常见问题
1. 去重失败的原因
默认的contains()
方法使用的是对象的引用比较。如果自定义对象没有重写equals()
,则去重操作会失败。
2. 遍历时禁止修改集合
避免在遍历集合时进行增删改查操作,否则会抛出ConcurrentModificationException
异常。
结论
List集合是Java中最常用的集合类之一,理解其内部机制和使用方法是每个开发人员的必修课。在实际应用中,需要根据具体需求选择合适的集合类型和操作方式,以达到最佳性能和代码简洁性。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月19日 14时01分25秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux工作笔记038---CentOS8.2安装Nginx_测试通过
2023-02-04
Linux工作笔记040---Centos8.2安装mysql5.7.18_已经测试成功
2023-02-04
Linux带给了我什么?
2023-02-04
Linux常用vi命令
2023-02-04
Linux常用命令
2023-02-04
Linux常用命令
2023-02-04
linux常用命令-grep
2023-02-04
linux常用命令100个(转)
2023-02-04
linux常用命令合集及常用工具指令集
2023-02-04
Linux常用命令详解与示例
2023-02-04
Linux常用嗅探工具(1):fping命令
2023-02-04
Linux常见操作命令整理
2023-02-04
linux开机启动脚本制作
2023-02-04
linux打印函数是哪个文件夹,如何从linux上的文件夹中找到一个函数
2023-02-04
Linux文件内容查询命令
2023-02-04
linux文件属性
2023-02-04
Linux文件查找命令find,xargs详述【转】
2023-02-04
linux文件目录解释
2023-02-04