ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
创建
import java.util.ArrayList;
ArrayList<E> objectName =new ArrayList<>();
E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。
就比如有个Student类;E 就可以是 Student
基本数据类型 | 引用数据类型 |
---|
boolean | Boolean |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
add()
add() 方法将元素插入到指定位置的动态数组中。
add(int index,E element) 索引 要添加的元素
如果没有index,则自动添加到末尾。
# 插入成功---> 返回 true
addAll()
# 将给定集合中的所有元素添加到 arraylist中。
addAll(int index,Collection c);
index 索引(可选,没有的话添加到末尾)
c 要插入的集合元素
# 返回值 ----> 成功返回true
# 实例
ArrayList<Integer> num1 = new ArrayList<>();
ArrayList<Integer> num2 = new ArrayList<>();
num1.add(1);
num1.add(2);
num2.add(3);
num2.add(4);
num1.addAll(num2);
sout.num1;
clear() removeAll()
用于删除动态数组中的所有元素。
list.clear();
删除所有!!!
removeAll() 同样删除所有元素。
clone()
拷贝一份动态数组,属于浅拷贝。
list.clone();
返回值:
ArrayList对象。
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
ArrayList<Integer> newList = (ArrayList<Integer>)list.clone();
深浅拷贝
浅拷贝:
只复制指向某个对象的指针,而不复制对象本身,新旧对象共享同一块内存地址。
其中一个改变会影响到另一个。
深拷贝:
将一个对象从内存中完整的拷贝出来,从堆内存中开辟一块新的区域存放对象。
修改这个不会影响另一个。
sort()
根据指定的顺序对动态数组中的元素进行排序。
list.sort()
无返回值。
list.sort(Comparator.naturalOrder());
list.sort(Comparator.reverseOrder());
contains()
判断某个元素是否在动态数组中。
arraylist.contains(obj);
在 --> true
否 --> false