文章目录
1. 集合
集合是与数组类似,也是一种容器,但是其存储容量可变。
-
数组的特点:
- 数组定义完成后,类型确定、长度固定。
- 适合做数据个数和类型确定的场景。
- 存在问题:当进行个数不确定且要进行增删数据的场景时,数组是不太合适的。
-
集合的特点:
- 集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。
- 集合非常适合做元素个数不确定,且要进行增删操作的业务场景。
- 集合提供了很多丰富好用的功能,而数组的功能很单一。
2. ArrayList集合
ArrayList是集合的一种,它支持索引。
- ArrayList集合的特点:
- 底层是数组实现的,长度可以变化。
- 泛型的使用:
- 用于约束集合中的数组元素类型。
3. ArrayList类的常用方法
3.1 构造方法
构造器 | 说明 |
---|---|
public ArrayList() | 创建一个空的集合对象 |
3.2 添加元素方法
方法名 | 说明 |
---|---|
public boolean add(E e) | 将指定的元素追加到此集合的末尾 |
public void add(int index,E element) | 在此集合中的指定位置插入指定的元素 |
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
// 1. 创建ArrayList集合对象
ArrayList list = new ArrayList();
// 2. 添加数据
list.add("拉布拉多");
list.add("拉的不多");
list.add(10);
list.add(20.1);
list.add('猫');
list.add(true);
list.add(false);
System.out.println(list);
// 3. 给指定索引插入元素
list.add(1, "阿拉斯加");
System.out.println(list);
}
}
// 打印输出
[拉布拉多, 拉的不多, 10, 20.1, 猫, true, false]
[拉布拉多, 阿拉斯加, 拉的不多, 10, 20.1, 猫, true, false]
4. 泛型
-
概述:
- 比如:ArrayList 就是一个泛型,可以在编译阶段约束集合对象只能操作某种数据类型。
-
举例:
- ArrayList:此集合只能操作字符串类型的元素。
- ArrayList:此集合只能操作整数类型的元素。
-
注意:
- 集合中只能存储引用类型,不支持基本数据类型。
-
代码演示:
import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { // 1. 创建ArrayList集合对象 // ArrayList<String> list = new ArrayList<String>(); // 从jdk1.7开始,泛型后面的类型声明可不写 ArrayList<String> list = new ArrayList<>(); // 2. 添加数据 list.add("拉布拉多"); list.add("拉的不多"); list.add(10); // 报错 list.add(20.1); // 报错 list.add(true); // 报错 System.out.println(list); // 3. 给指定索引插入元素 list.add(1, 99); // 报错 System.out.println(list); } }
5. ArrayList集合常用API
方法名 | 说明 |
---|---|
public boolean remove(Object o) | 删除指定的元素,返回删除是否成功 |
public E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
public E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
public E get(int index) | 返回指定索引处的元素 |
public int size() | 返回集合中的元素的个数 |
-
代码演示:
import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { // 创建ArrayList集合对象 ArrayList<String> list = new ArrayList<>(); // 添加数据 list.add("拉布拉多"); list.add("德牧"); list.add("拉布拉多"); list.add("阿拉斯加"); list.add("中华田园猫"); list.add("金毛"); // public E get(int index) 返回指定索引处的元素 String e = list.get(3); System.out.println(e); // public int size() 获取集合的大小(元素的个数) System.out.println(list.size()); // 遍历集合 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } // public E remove(int index) 删除指定索引处的元素,返回被删除的元素 System.out.println(list); String e1 = list.remove(5); // 删除金毛,用e1接一下返回值 System.out.println(e1); System.out.println(list); // public boolean remove(Object o) 删除指定的元素,返回删除是否成功 System.out.println(list.remove("阿拉斯加")); System.out.println(list); System.out.println(list.remove("拉布拉多")); // 当集合里有相同元素时,只会删除这些相同元素里最先出现的元素 System.out.println(list); // public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素 String e2 = list.set(2, "中华田园犬"); // "中华田园猫" --> "中华田园犬" System.out.println(e2); System.out.println(list); } }
// 输出结果: D:\Software\Java\jdk\bin\java.exe … 阿拉斯加 6 拉布拉多 德牧 拉布拉多 阿拉斯加 中华田园猫 金毛 [拉布拉多, 德牧, 拉布拉多, 阿拉斯加, 中华田园猫, 金毛] 金毛 [拉布拉多, 德牧, 拉布拉多, 阿拉斯加, 中华田园猫] true [拉布拉多, 德牧, 拉布拉多, 中华田园猫] true [德牧, 拉布拉多, 中华田园猫] 中华田园猫 [德牧, 拉布拉多, 中华田园犬] Process finished with exit code 0