Java 集合系列(二)ArrayList详解
一、ArrayList概述
ArrayList是Java中最常用的集合类之一,其底层是由数组实现的动态数组结构。与数组相比,ArrayList具有容量可动态增加、元素可动态删除、插入,方便灵活,更加适合实际业务需求。
二、ArrayList常用操作
1.创建ArrayList集合
通过无参构造器可以创建一个初始容量为10的ArrayList集合:
ArrayList<Object> list = new ArrayList<>();
通过指定初始容量的构造器可以创建一个指定初始容量的ArrayList集合:
ArrayList<Object> list = new ArrayList<>(20);
或者通过直接添加元素的方式来创建ArrayList集合:
ArrayList<Object> list = new ArrayList<>(Arrays.asList(1,2,3,4))
2.向ArrayList中添加元素
ArrayList集合通过调用add()方法来添加元素,示例代码:
ArrayList<Object> list = new ArrayList<>();
list.add(1);
list.add("list");
list.add(3.14);
3.获取ArrayList中的元素
通过调用get()方法可以获取ArrayList中指定索引位置的元素,示例代码:
System.out.println(list.get(0)); // 输出结果为1
4.修改ArrayList中的元素
通过调用set()方法可以修改ArrayList中指定索引位置的元素,示例代码:
list.set(1, "newList");
5.删除ArrayList中的元素
通过调用remove()方法可以删除ArrayList中指定元素,示例代码:
list.remove(0); // 删除第一个元素
6.遍历ArrayList
通过for循环或者迭代器等方式可以对ArrayList进行遍历,示例代码:
for (Object obj : list) {
System.out.println(obj);
}
三、ArrayList性能分析
1.数组扩容
ArrayList在执行添加元素操作时,如果发现当前数组的容量不足以容纳所有元素,就会进行数组扩容。扩容的基本算法是创建一个新的数组,并将原数组中的元素复制到新数组中。这个过程的时间复杂度为O(n),其中n为列表的长度。
2.尾部添加元素
由于ArrayList底层是由数组实现的,因此它对于尾部添加元素的效率是非常高的,时间复杂度为O(1)。
3.中间插入、删除元素
由于ArrayList底层是由数组实现的,因此对于中间插入、删除元素的效率较低,时间复杂度为O(n)。
四、ArrayList示例
1.向一个ArrayList集合中添加10000个整数
本示例演示向ArrayList集合中添加10000个随机整数,以测试集合添加元素性能。测试程序如下:
public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
long startTime = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
list.add((int) (Math.random() * 10000));
}
long endTime = System.currentTimeMillis();
long timeElapsed = endTime - startTime;
System.out.println("ArrayList添加10000个元素的时间:" + timeElapsed + "ms");
}
}
输出结果:
ArrayList添加10000个元素的时间:5ms
2.使用ArrayList实现顺序栈
本示例演示如何使用ArrayList实现简单的顺序栈数据结构,顺序栈的基本特点是后进先出。
import java.util.ArrayList;
public class ArrayStack {
ArrayList<Integer> list = new ArrayList<>();
public void push(int element) {
list.add(element);
}
public int pop() {
int lastIndex = list.size() - 1;
int lastElement = list.get(lastIndex);
list.remove(lastIndex);
return lastElement;
}
}
五、总结
本篇文章主要讲解了Java中的ArrayList集合,包括创建ArrayList、向ArrayList中添加元素、获取、修改、删除ArrayList中的元素、遍历ArrayList,以及ArrayList的性能分析。同时,本文还提供了两个示例,以演示ArrayList的常见用法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 集合系列(二)ArrayList详解 - Python技术站