学习资料来自菜鸟教程
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList 继承了 AbstractList ,并实现了 List 接口。
ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下:
import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> objectName =new ArrayList<>(); // 初始化
E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。
objectName: 对象名。
ArrayList 是一个数组队列,提供了相关的添加、删除、修改、遍历等功能
Java ArrayList 常用方法
- add() 方法添加元素到 ArrayList
- get() 方法访问 ArrayList 中的元素
- set() 方法修改 ArrayList 中的元素
import java.util.ArrayList;//引入 ArrayList 类
public class ArrayListtest {
public static void main(String[]args){
ArrayList<String>list1 = new ArrayList<>();//初始化类
list1.add("列表一");//.add往list1添加元素
list1.add("列表二");
list1.add("列表三");
list1.add("列表四");
list1.add("列表五");
System.out.println(list1);
System.out.println(list1.get(1));//get()方法访问 ArrayList 中的元素
list1.set(4, "列表六");//set()方法修改ArrayList中的元素,第一个参数为索引位置,第二个为要修改的值
System.out.println(list1);
}
}
运行结果:
- 使用 remove() 方法删除 ArrayList 中的元素
import java.util.ArrayList;//引入 ArrayList 类
public class ArrayListtest {
public static void main(String[]args){
ArrayList<String>list1 = new ArrayList<>();//初始化类
list1.add("列表一");//.add往list1添加元素
list1.add("列表二");
list1.add("列表三");
list1.add("列表四");
list1.add("列表五");
list1.remove(4);//删除第5个元素
System.out.println(list1);
}
}
- 使用 size() 方法计算 ArrayList 中的元素数量
import java.util.ArrayList;//引入 ArrayList 类
public class ArrayListtest {
public static void main(String[]args){
ArrayList<String>list1 = new ArrayList<>();//初始化类
list1.add("列表一");//.add往list1添加元素
list1.add("列表二");
list1.add("列表三");
list1.add("列表四");
list1.add("列表五");
System.out.println(list1.size());//计算数组中元素的数量
}
}
6. for / for-each 来迭代数组列表中的元素
import java.util.ArrayList;//引入 ArrayList 类
public class ArrayListtest {
public static void main(String[]args) {
ArrayList<String> list1 = new ArrayList<>();//初始化类
list1.add("列表一");//.add往list1添加元素
list1.add("列表二");
list1.add("列表三");
list1.add("列表四");
list1.add("列表五");
for (int i = 0; i < list1.size(); i++) {//使用for来迭代数组列表中的元素
System.out.println(list1.get(i));//计算数组中元素的数量
}
System.out.println("==============分隔符==============");//计算数组中元素的数量
for (String i:list1) {//使用for-each来迭代数组列表中的元素
System.out.println(i);
}
}
}
ArrayList 排序
- Collections 类也是一个非常有用的类,位于 java.util 包中,提供的 sort() 方法可以对字符或数字列表进行排序。
import java.util.ArrayList;//引入 ArrayList 类
import java.util.Collections;// 引入 Collections 类
public class ArrayListtest {
public static void main(String[]args) {
ArrayList<String> list1 = new ArrayList<>();//初始化类
list1.add("d");//.add往list1添加元素
list1.add("b");
list1.add("c");
list1.add("e");
list1.add("a");
Collections.sort(list1); // Collections类中提供的 sort() 方法可以对字符或数字列表进行排序
for (String i : list1) {
System.out.println(i);
}
}
}
数字排序
Java ArrayList 常用方法列表
方法 | 描述 |
---|---|
add() | 将元素插入到指定位置的 arraylist 中 |
addAll() | 添加集合中的所有元素到 arraylist 中 |
clear() | 删除 arraylist 中的所有元素 |
clone() | 复制一份 arraylist |
contains() | 判断元素是否在 arraylist |
get() | 通过索引值获取 arraylist 中的元素 |
indexOf() | 返回 arraylist 中元素的索引值 |
removeAll() | 删除存在于指定集合中的 arraylist 里的所有元素 |
remove() | 删除 arraylist 里的单个元素 |
size() | 返回 arraylist 里元素数量 |
isEmpty() | 判断 arraylist 是否为空 |
subList() | 截取部分 arraylist 的元素 |
set() | 替换 arraylist 中指定索引的元素 |
sort() | 对 arraylist 元素进行排序 |
toArray() | 将 arraylist 转换为数组 |
toString() | 将 arraylist 转换为字符串 |
ensureCapacity() | 设置指定容量大小的 arraylist |
lastIndexOf() | 返回指定元素在 arraylist 中最后一次出现的位置 |
lastIndexOf() | 返回指定元素在 arraylist 中最后一次出现的位置 |
retainAll() | 保留 arraylist 中在指定集合中也存在的那些元素 |
containsAll() | 查看 arraylist 是否包含指定集合中的所有元素 |
trimToSize() | 将 arraylist 中的容量调整为数组中的元素个数 |
removeRange() | 删除 arraylist 中指定索引之间存在的元素 |
replaceAll() | 将给定的操作内容替换掉数组中每一个元素 |
removeIf() | 删除所有满足特定条件的 arraylist 元素 |
forEach() | 遍历 arraylist 中每一个元素并执行特定操作 |
泛型
下面是定义泛型方法的规则:
所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的 )。
每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像 int、double、char 等)。
java 中泛型标记符:
- E - Element (在集合中使用,因为集合中存放的是元素)
- T - Type(Java 类)
- K - Key(键)
- V - Value(值)
- N - Number(数值类型)
- ? - 表示不确定的 java 类型