一、ArrayList介绍
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList 继承了 AbstractList类 ,并实现了 List 接口,同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。
二、ArrayList的使用
初始化
因为ArrayList类位于java.util包中,使用前得引入它
引入 ArrayList 类:
import java.util.ArrayList
初始化:
ArrayList<String> objectName =new ArrayList<>();
增加元素
添加元素到 ArrayList 可以使用 add() 方法
import java.util.ArrayList; //导包
public class Demo {
public static void main(String[] args) {
//初始化
ArrayList<String> list = new ArrayList<>();
//使用 add()方法增加元素
list.add("张三");
list.add("李四");
System.out.println(list);
}
}
输出结果:[张三, 李四]
访问元素
访问元素可以用get()方法
import java.util.ArrayList; //导包
public class Demo {
public static void main(String[] args) {
//初始化
ArrayList<String> list = new ArrayList<>();
//使用 add()方法增加元素
list.add("张三");
list.add("李四");
//获取集合中第一个元素 集合索引值从0开始
String name = list.get(0);
System.out.println(name);
}
}
输出结果:张三
修改元素
修改元素可以用set()方法
import java.util.ArrayList; //导包
public class Demo {
public static void main(String[] args) {
//初始化
ArrayList<String> list = new ArrayList<>();
//使用 add()方法增加元素
list.add("张三");
list.add("李四");
//修改第一个元素为 王麻子
list.set(0, "王麻子");
System.out.println(list);
}
}
输出结果: [王麻子, 李四]
删除元素
删除元素可以用remove()方法
import java.util.ArrayList; //导包
public class Demo {
public static void main(String[] args) {
//初始化
ArrayList<String> list = new ArrayList<>();
//使用 add()方法增加元素
list.add("张三");
list.add("李四");
//删除第一个元素
list.remove(0);
System.out.println(list);
}
}
输出结果:[李四]
计算大小
计算ArrayList中元素的数量用size()方法
import java.util.ArrayList; //导包
public class Demo {
public static void main(String[] args) {
//初始化
ArrayList<String> list = new ArrayList<>();
//使用 add()方法增加元素
list.add("张三");
list.add("李四");
//计算集合的大小
int number = list.size();
System.out.println(number);
}
}
输出结果:2
遍历集合
可以使用for循环来遍历ArrayList
import java.util.ArrayList; //导包
public class Demo {
public static void main(String[] args) {
//初始化
ArrayList<String> list = new ArrayList<>();
//使用 add()方法增加元素
list.add("张三");
list.add("李四");
//遍历集合中的元素
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
输出结果:
张三
李四
也可以使用for-each来遍历ArrayList
import java.util.ArrayList; //导包
public class Demo {
public static void main(String[] args) {
//初始化
ArrayList<String> list = new ArrayList<>();
//使用 add()方法增加元素
list.add("张三");
list.add("李四");
//遍历集合中的元素
for (String i:list) {
System.out.println(i);
}
}
}
输出结果:
张三
李四
ArrayList排序
可以使用Collections 类提供的sort()方法对字符或数字进行排序,Collections同样位于java.util 包中,所以也需要导包
提示:ArrayList中的数字不可以使用int类型,需使用Integer类型
import java.util.ArrayList; //导包
import java.util.Collections;
public class Demo {
public static void main(String[] args) {
//初始化
ArrayList<Integer> list = new ArrayList<>();
//使用 add()方法增加元素
list.add(3);
list.add(1);
list.add(5);
list.add(2);
list.add(4);
//遍历集合中的元素
Collections.sort(list);
System.out.println(list);
}
}
输出结果:[1, 2, 3, 4, 5]