ArrayList 是 java 集合框架中比较常用的数据结构,继承自 AbstractList,实现了 List 接口。ArrayList是一个动态增长的动态数组,和其他集合不同的是(set等),ArrayList集合可以允许重复对象,可以插入多个null元素,是一个有序元素。
ArrayList支持快速访问,序列化,复制操作。所以ArrayList和别的数组比起来速度差一点,毕竟需要去维持元素的有序。
每个 ArrayList 实例都有一个容量,初始容量为10。该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。
在添加大量元素前,应用程序可以使用 ensureCapacity 操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。
ArrayList不是线程安全的,所以建议在单线程的时候使用。
下面是用法示例:
- Add(E e)方法,向尾部添加指定元素
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("e");
list.add("f");
- Remove()方法
// 移除列表中指定位置的元素
list.remove(1);
// 从列表移除第一次出现的指定元素
list.remove("b");
- Size()方法,返回列表中的元素数
list.size();
- Set()方法,替换元素。把第一个元素替换成z
list.set(1,"z");
- Get()方法,返回列表中指定位置的元素
list.get(1);
- Contains()方法,如果列表包含指定元素则返回true
System.out.println(list.contains("a"));
- isEmpty()方法 ,如果列表不包含任何元素则返回true
System.out.println(list.isEmpty());
- indexOf()方法,返回指定对象在列表第一次出现的位置的索引
list.indexOf("a");
- lastIndexOf()方法,返回指定对象在列表最后一次出现的位置的索引
list.indexOf("a");
- Clear()方法,移除列表中的所有元素
list.clear();
- ArrayList集合的遍历方式
//for循环
for (int i = 0; i < list.size(); i++) {//for
//get():获取指定索引处的值
System.out.print(list.get(i) + " ");
}
System.out.print("\n第2种方式:");
//foreach循环
for (Object object : list) {
System.out.print(object + " ");
}
System.out.print("\n第3种方式:");
//Iterator:可以遍历集合的迭代器
Iterator<String> iterator = list.iterator();
//boolean hasNext():是否存在下一个元素
while(iterator.hasNext()) {
//E(Object) next():获得下一个元素的值
System.out.print(iterator.next());
}