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. 增加元素

List
list = 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方法进行去重操作:

ArrayList
list = 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. 第三方接口调用

List
list = 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中最常用的集合类之一,理解其内部机制和使用方法是每个开发人员的必修课。在实际应用中,需要根据具体需求选择合适的集合类型和操作方式,以达到最佳性能和代码简洁性。

上一篇:List集合排序找出其中的最大和最小值
下一篇:list深拷贝和浅拷贝

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月19日 14时01分25秒