当前位置:   article > 正文

ArrayList用法详解(Java)_java arraylist使用

java arraylist使用

ArrayList

Java 集合框架中最常用的类之一。ArrayList基于数组的动态数组,它提供了动态增长和缩减容量的功能,因此非常适合存储和操作元素数量可变的集合。

一、底层原理:

1. 数组

  • ArrayList 使用一个数组来存储元素。
  • 初始时,ArrayList 创建一个固定大小的数组来保存元素。
  • 当数组已满时,ArrayList 会创建一个新的更大的数组,并将所有元素从旧数组复制到新数组中。

2. 动态增长

  • 当向 ArrayList 中添加元素时,它会检查当前数组是否已满。
  • 如果数组已满,ArrayList 会创建一个新的数组,其大小通常是当前数组大小的两倍,然后将所有元素从旧数组复制到新数组中。
  • 目的是为了避免在添加新元素时频繁地调整数组的大小,从而提高性能。

3. 数组大小调整策略

  • ArrayList 实现了一种称为 “grow” 的策略,即当数组容量不足时,新数组的大小通常是当前数组大小的两倍。
  • 这种策略旨在平衡内存占用和性能。
  • 通常情况下,ArrayList 的添加操作的时间复杂度是 O(1),但在数组容量不足时可能会触发 O(n) 的复制操作,其中 n 是当前元素数量。

4. 容量控制

  • ArrayList 允许通过 ensureCapacity(int minCapacity) 方法手动设置底层数组的容量。这个方法可以用于在大量元素添加之前预先分配足够的内存,以提高性能。

二、用法示例:

1. 创建 ArrayList

import java.util.ArrayList;

// 创建一个 ArrayList 对象
ArrayList<String> list = new ArrayList<>();
  • 1
  • 2
  • 3
  • 4

2. 添加元素

// 添加单个元素
list.add("Apple");

// 在指定位置添加元素
list.add(1, "Banana");
  • 1
  • 2
  • 3
  • 4
  • 5

3. 获取元素

// 获取指定位置的元素
String fruit = list.get(0);
  • 1
  • 2

4. 修改元素

// 修改指定位置的元素
list.set(0, "Orange");
  • 1
  • 2

5. 删除元素

// 删除指定位置的元素
String removedElement = list.remove(1);

// 删除指定元素的第一个匹配项
boolean isRemoved = list.remove("Banana");
  • 1
  • 2
  • 3
  • 4
  • 5

6. 获取大小

// 获取 ArrayList 的大小(元素数量)
int size = list.size();
  • 1
  • 2

7. 检查是否为空

// 检查 ArrayList 是否为空
boolean isEmpty = list.isEmpty();
  • 1
  • 2

8. 迭代遍历

// 使用 for-each 循环遍历 ArrayList
for (String item : list) {
    System.out.println(item);
}

// 使用迭代器遍历 ArrayList
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    System.out.println(item);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

9. 转换为数组

// 将 ArrayList 转换为数组
String[] array = list.toArray(new String[0]);
  • 1
  • 2

10. 清空 ArrayList

// 清空 ArrayList
list.clear();
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/766496
推荐阅读
相关标签
  

闽ICP备14008679号