什么是ArrayList?
ArrayList类是一个特殊的数值——动态数组。
实现所有可选列表操作,并允许所有元素,包括null。
使用方法:
一、构造方法
1、不初始化容量
//不初始化刚开始的数组容量,当数组容量满时数组会自动一当前数组容量的2倍扩容
ArrayList arr1 = new ArrayList();
2.、初始化容量
//初始容量为3
ArrayList arr2 = new ArrayList(3);
3、用一个集合或数组初始化
//a为集合或数组
ArrayList arr3 = new ArrayList(a);
二、增删改查
返回值类型 | 方法和解释 |
---|---|
boolean(增) | add("a"); 将指定的元素'a'追加到此列表的末尾。 |
void(增) | add(int index, “a”); 在此列表中的指定位置插入'a'。 |
void(删) | clear(); 从列表中删除所有元素。 |
Object(删) | remove(Objec/int index); 从列表中删除指定位置处的元素,返回该元素。1、在列表里删除元素(根据对象删除)2、根据下标删除ArrayList的元素 |
Object(改) | set(int index\Object,Object);1、在列表里替换元素(根据对象删除)2、根据下标替换ArrayList的元素 |
Object(查) | get(int index); |
三、遍历方法
索引值遍历
for(int i = 0; i < arrayList.size(); i++){
System.out.print(arrayList.get(i) + " ");
}
for遍历
for(Integer number : arrayList){
System.out.print(number + " ");
}
迭代器遍历
方法一:
Iterator<Integer> it = arrayList.iterator();
while(it.hasNext()){
System.out.print(it.next() + " ");
}
方法二:
for(lterator it2 = list.ilerator();it2.hasNext();){
System.out.println(it2.next());
}
四、案例
最简单的例子:
public static void main(String[] args) {
ArrayList arrayList = new ArrayList();
//给数组增加10个元素
for (int i = 0; i < 10; i++) arrayList.add(i);
//将第6个元素移除
arrayList.remove(5);
//再增加3个元素
for (int i = 0; i < 3; i++) arrayList.add(i+20);
//遍历
for(int i = 0; i < arrayList.size(); i++)
System.out.print(arrayList.get(i) + " ");
}
ArrayList用法示例
/**
* @author GongchuangSu
* @since 2016.05.10
*————————————————
*版权声明:本文为CSDN博主「GongchuangSu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附
*上原文出处链接及本声明。
*原文链接:https://blog.csdn.net/GongchuangSu/article/details/51514389
*/
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());
}
}
/**
Before add:arrayList.size() = 0
After add:arrayList.size() = 5
Printing elements of arrayList
通过迭代器遍历:1 3 5 7 9
通过索引值遍历:1 3 5 7 9
for循环遍历:1 3 5 7 9
ArrayList contains 5 is: true
ArrayList is empty: true
*/