在Java中如何利用ArrayList实现动态数组_ArrayList操作实践指南

ArrayList是Java中动态数组的核心实现,基于可变长Object数组,支持运行时增删元素,解决传统数组长度固定问题;通过导入java.util.ArrayList类创建,可使用无参构造函数或指定初始容量提升性能;支持泛型声明如ArrayList list = new ArrayList();可通过Arrays.asList快速初始化;add()方法添加元素(末尾或指定位置),get()按索引访问,效率高为O(1);set()修改元素,remove()按索引或对象删除(删除后元素前移影响性能),clear()清空列表;遍历方式包括普通for、增强for和迭代器;contains()判断存在性,indexOf()查找索引(未找到返回-1);频繁插入删除需注意性能,合理设置初始容量或调用trimToSize()减少内存开销。

Java中的ArrayList是动态数组的核心实现工具,它基于可变长的Object数组,允许在运行时自由添加、删除元素,解决了传统数组长度固定的问题。掌握ArrayList的基本操作和使用技巧,对日常开发非常关键。

创建与初始化ArrayList

要使用ArrayList,必须导入java.util.ArrayList类。可以通过无参构造函数创建一个默认容量的列表,也可指定初始容量以提升性能。

  • 创建字符串类型的ArrayList:
    ArrayList list = new ArrayList();
  • 指定初始容量:
    ArrayList numbers = new ArrayList(10);
  • 使用Arrays.asList快速初始化:
    ArrayList initList = new ArrayList(Arrays.asList("a", "b", "c"));

添加与访问元素

ArrayList提供add()方法插入元素,get()方法按索引读取。由于底层是数组,随机访问效率高,时间复杂度为O(1)。

  • 添加元素到末尾:
    list.add("hello");
  • 在指定位置插入:
    list.add(0, "world");(将"world"插入到索引0)
  • 获取元素:
    String item = list.get(0);
  • 获取列表大小:
    int size = list.size();

修改与删除元素

可以替换指定位置的元素,也可以根据值或索引删除元素。删除操作会导致后续元素前移,可能影响性能。

  • 修改元素:
    list.set(1, "new value");
  • 按索引删除:
    list.remove(0);
  • 按对象删除(删除第一个匹配项):
    list.remove("target");
  • 清空整个列表:
    list.clear();

遍历与查找操作

常见的遍历方式包括for循环、增强for循环和迭代器。contains()和indexOf()可用于查找元素是否存在或定位其索引。

  • 使用for循环遍历:
    for (int i = 0; i
  • 增强for循环:
    for (String s : list) { System.out.println(s); }
  • 判断是否包含某个元素:
    boolean hasItem = list.contains("hello");
  • 查找元素索引:
    int index = list.indexOf("hello");(未找到返回-1)

基本上就这些。ArrayList使用简单,但在频繁插入删除的场景中需注意性能。合理调用trimToSize()或确保初始容量适当,能有效减少内存开销。不复杂但容易忽略。