一、定义
声明和构造一个保存Employee对象的数组列表:ArrayList<Employee> staff = new ArrayList<>();
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<Employee> staff = new ArrayList<>();
ArrayList<Employee> staff2 = new ArrayList<>(10);// 指定容量
staff.add(new Employee("a",1,2020,1,1));
方法 | 说明 |
---|---|
add( ) | 在列表尾端添加一个元素 |
size() | 返回列表中包含的实际元素数目 |
ensureCapacity() | 不重新分配存储空间的情况下,保存给定数量的元素 |
trimToSize() | 将存储容量消减为当前尺寸 |
ArrayList 添加大量元素之前最好先使用ensureCapacity 方法,以减少增量重新分配的次数
二、访问元素
方法 | 说明 |
---|---|
set() | 设置并覆盖指定位置的值 |
get() | 获取指定位置元素值 |
add() | 指定位置插入元素 |
remove() | 删除指定位置元素,且后面元素向前移动,会改变索引 |
- 索引下标同数组一样,从0开始
- ArrayList的<>中不允许写成int,只能是Integer(对象包装器类)
经典代码示例:
package list;
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListDemo {
public static void main(String[] srgs){
ArrayList<Integer> arrayList = new ArrayList<Integer>();
System.out.printf("Before add:arrayList.size() = %d\n",arrayList.size());
arrayList.add(1);
arrayList.add(3);
arrayList.add(5);
arrayList.add(7);
arrayList.add(9);
System.out.printf("After add:arrayList.size() = %d\n",arrayList.size());
System.out.println("Printing elements of arrayList");
// 三种遍历方式打印元素
// 第一种:通过迭代器遍历
System.out.print("通过迭代器遍历:");
Iterator<Integer> it = arrayList.iterator();
while(it.hasNext()){
System.out.print(it.next() + " ");
}
System.out.println();
// 第二种:通过索引值遍历
System.out.print("通过索引值遍历:");
for(int i = 0; i < arrayList.size(); i++){
System.out.print(arrayList.get(i) + " ");
}
System.out.println();
// 第三种:for循环遍历
System.out.print("for循环遍历:");
for(Integer number : arrayList){
System.out.print(number + " ");
}
// toArray用法
// 第一种方式(最常用)
Integer[] integer = arrayList.toArray(new Integer[0]);
// 第二种方式(容易理解)
Integer[] integer1 = new Integer[arrayList.size()];
arrayList.toArray(integer1);
// 抛出异常,java不支持向下转型
//Integer[] integer2 = new Integer[arrayList.size()];
//integer2 = arrayList.toArray();
System.out.println();
// 在指定位置添加元素
arrayList.add(2,2);
// 删除指定位置上的元素
arrayList.remove(2);
// 删除指定元素
arrayList.remove((Object)3);
// 判断arrayList是否包含5
System.out.println("ArrayList contains 5 is: " + arrayList.contains(5));
// 清空ArrayList
arrayList.clear();
// 判断ArrayList是否为空
System.out.println("ArrayList is empty: " + arrayList.isEmpty());
}
}