ArrayList对象可以用于存储一个对象列表。特点是:只能存储对象,且长度可变。
创建语法:
ArrayList<AConcreteType> list = new ArrayList<AConcreteType> ();
或者:
ArrayList<AConcreteType> list = new ArrayList<> ();
方法 | 描述 |
ArrayList() | 创建一个空的列表 |
add(e: E): void | 增加一个新元素e到该列表的末尾 |
add(index: int, e: E): void | 增加一个新元素e到该列表的指定下标处 |
clear(): void | 删除列表中的所有元素 |
contains(o: Object): boolean | 如果该列表包含元素o,则返回true |
get(index: int): E | 返回该列表指定下标位置的元素 |
indexOf(o: Objecrt): int | 返回列表中第一个匹配元素的下标 |
isEmpty(): boolean | 如果该列表不包含任何元素,返回true |
lastIndexOf(o: Object): int | 返回列表中最后一个匹配元素的下标 |
remove(o: Object): boolean | 去除列表中的第一个匹配元素。如果该元素被去除,返回true |
size(): int | 返回列表中的元素个数 |
remove(index: int): E | 去除指定下标位置的元素。如果该元素被去除,返回被指定去除的元素 |
set(index: int, e: E) | 设置指定下标位置的元素 |
注意:这里的E是泛指类型
import java.util.ArrayList;
import java.util.Arrays;
public class Test03 {
public static void main(String[] args) {
ArrayList<Double> arrayList = new ArrayList<>();
arrayList.add(1.0);
arrayList.add(3.0);
arrayList.add(4.0);
arrayList.set(0, 2.0);
//arrayList.set(5, 2.0); // index<arrayList.size() java.lang.IndexOutOfBoundsException: Index: 5, Size: 3
System.out.println(arrayList.size()); // 3
System.out.println(arrayList); // [2.0, 3.0, 4.0]
arrayList.remove(2.0);
arrayList.remove(arrayList.size()-1);
System.out.println(arrayList.contains(1.0)); // false
System.out.println(arrayList.get(0)); // 3.0
System.out.println(arrayList.size()); // 1
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.remove(new Integer(1));
System.out.println(list); // [2, 3]
}
}
列表跟数组的异同
①数组的元素可以是任意类型;列表里的元素只能是对象,不能是基本数据类型
②数组长度在创建后就固定了,长度不可变;列表长度是可变的,创建之初不用指定列表长度
③都可以使用foreach循环来遍历元素 for(elementType element: arrayList){}
数组和列表的相互转化:
①数组转化成列表使用Array.asList
Integer[] array = {1,2,3};
ArrayList<Integer> arrayList1 = new ArrayList<>(Arrays.asList(array));
②列表转化成数组使用arrayList.toArray()
Integer[] integers = new Integer[arrayList1.size()];
arrayList1.toArray(integers);
最后一步是将arrayList1中的元素复制到integers中
列表元素比较
①排序:java.util.Collections.sort(列表)
②获取最大值:java.util.Collections.max(列表)
③获取最小值:java.util.Collections.min(列表)
④随机打乱元素:java.util.Collections.shuffer(列表)