一、
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList 继承了 AbstractList ,并实现了 List 接口。
二、添加元素
ArrayList 类提供了很多有用的方法,添加元素到 ArrayList 可以使用 add() 方法
代码如下:
public class testList {
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
System.out.println(list);
}
}
运行结果:
[添, 加, 元, 素]
2.添加集合中的元素到ArrayList中
代码如下:
public class testList {
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
ArrayList<String> strings = new ArrayList<>();
strings.add("A");
strings.add("B");
strings.add("C");
strings.add("D");
list.addAll(strings);
System.out.println(list);
}
}
运行结果:
[添, 加, 元, 素, A, B, C, D]
三、访问元素
访问 ArrayList 中的元素可以使用 get() 方法
public class testList {
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));
System.out.println(list.get(3));
}
}
运行结果:
添
加
元
素
四、修改元素
修改 ArrayList 中的元素可以使用 set() 方法
代码如下:
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
list.set(0,"修改元素");//第一个参数为需要修改元素的索引,第二个参数为修改的值
System.out.println(list);
}
运行结果:
[修改元素, 加, 元, 素]
五、删除元素
删除 ArrayList 中的元素可以使用 remove() 方法:
代码如下:
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
list.remove(0);//参数为元素的索引
System.out.println(list);
}
运行结果:
[加, 元, 素]
六:元素数量
ArrayList 中的元素数量可以使用 size() 方法,返回值int类型
代码如下:
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
int size = list.size();
System.out.println(size);
}
运行结果:
4
七、迭代数组
迭代可以使用普通fro循环,for循环,foreach(Lambda 表达式)
代码如下:
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
for (int i = 0; i < list.size(); i++) {
System.out.println("普通for循环---"+list.get(i));
}
for (String s : list) {
System.out.println("for循环---"+s);
}
list.forEach(l->{
System.out.println("forEach---"+l);
});
}
运行结果:
普通for循环---添
普通for循环---加
普通for循环---元
普通for循环---素
for循环---添
for循环---加
for循环---元
for循环---素
forEach---添
forEach---加
forEach---元
forEach---素
八、删除全部元素
方法:clear()
代码:
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
list.clear();
System.out.println(list);
}
运行结果:
[ ]
九:复制一份 arraylist
方法:clone()
代码:
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
Object clone = list.clone();
System.out.println("原ArrayList------------"+list);
System.out.println("复制ArrayList----------"+clone);
}
运行结果:
原ArrayList------------[添, 加, 元, 素]
复制ArrayList----------[添, 加, 元, 素]
十、判断 arraylist 是否为空
方法:isEmpty()
代码:
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
ArrayList<String> stringArrayList = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
boolean empty = list.isEmpty();
boolean empty1 = stringArrayList.isEmpty();
System.out.println(empty);
System.out.println(empty1);
}
运行结果:
false
true
十一、截取部分 arraylist 的元素
方法:subList() 第一个参数为开始元素索引,第二个参数为结果
代码:
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
List<String> strings = list.subList(0, 2);//第一个参数为开始元素索引,第二个参数为结果元素索引
System.out.println(strings);
}
运行结果:[添, 加]
十二、将 arraylist 转换为字符串
方法:toString()
代码:
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
String s = list.toString();
System.out.println(s);
}
运行结果:
[添, 加, 元, 素]
十三、将 arraylist 转换为数组
方法:toArray()
代码:
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
Object[] objects = list.toArray();
for (Object object : objects) {
System.out.println(object);
}
}
运行结果:
添
加
元
素
十四、对 arraylist 元素进行排序,
方法:sort()
// 元素进行升序排列
sort(Comparator.naturalOrder())
//元素进行降序排序
sort(Comparator.reverseOrder())
代码:
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("B");
list.add("C");
list.add("A");
list.add("D");
System.out.println("不排序-----"+list);
// 元素进行升序排列
list.sort(Comparator.naturalOrder());
System.out.println("升序排列----"+list);
//元素进行降序排序
list.sort(Comparator.reverseOrder());
System.out.println("降序排序----"+list);
}
运行结果:
不排序-----[B, C, A, D]
升序排列----[A, B, C, D]
降序排序----[D, C, B, A]