JavaSE-16
底层初始:内部有个 transient Object[] elementData→ 就是一个 Object 类型的数组,啥都能存,默认没放元素时,数组是空数组,一添加数据,才会真正分配空间。) { // 有没有下一个。set(int index, Object e):将指定索引处的元素,替换成指定的元素,返回值为替换前的元素。add(int index, Object e):在指定位置插入元素,指
目录
一.List体系
1.概述:List 就是有序、可重复、能按位置编号存取的集合,像动态变长的数组。
二.ArrayList类
1.概述:ArrayList 底层是动态 Object 数组,有序可重复,查询快、中间增删慢,线程不安全。
2.ArrayList中特有方法
- 增加元素方法
add(E e):向集合末尾处,添加指定的元素
public class Test {
public static void main(String[] args) {
// 创建一个空的 ArrayList
ArrayList<String> list = new ArrayList<>();
// 往集合末尾添加元素
list.add("苹果");
list.add("香蕉");
list.add("橙子");
System.out.println(list);
// 输出:[苹果, 香蕉, 橙子]
}
}
add(int index, Object e):在指定位置插入元素,指定位置后面的元素全部向后移动
public class Test {
public static void main(String[] args) {
// 创建一个空的 ArrayList
ArrayList<String> list = new ArrayList<>();
// 往集合末尾添加元素
list.add("苹果");
list.add("香蕉");
list.add("橙子");
list.add(1,"葡萄");
System.out.println(list);
// 输出:[苹果, 葡萄, 香蕉, 橙子]
}
}
- 删除元素方法
remove(Object e):按元素内容删除
public class Test {
public static void main(String[] args) {
// 创建一个空的 ArrayList
ArrayList<String> list = new ArrayList<>();
// 往集合末尾添加元素
list.add("苹果");
list.add("香蕉");
list.add("橙子");
boolean isRemove = list.remove("苹果");
System.out.println(isRemove);
// 输出:remove执行结果,true删除成功,false删除失败
System.out.println(list);
// 输出:[香蕉, 橙子]
}
}
remove(int index):按索引位置删除
public class Test {
public static void main(String[] args) {
// 创建一个空的 ArrayList
ArrayList<String> list = new ArrayList<>();
// 往集合末尾添加元素
list.add("苹果");
list.add("香蕉");
list.add("橙子");
String removeStr = list.remove(0);
System.out.println(removeStr);
// 输出:对应删除的元素"苹果"
System.out.println(list);
// 输出:[香蕉, 橙子]
}
}
- 替换元素方法
set(int index, Object e):将指定索引处的元素,替换成指定的元素,返回值为替换前的元素
public class Test {
public static void main(String[] args) {
// 创建一个空的 ArrayList
ArrayList<String> list = new ArrayList<>();
// 往集合末尾添加元素
list.add("苹果");
list.add("香蕉");
list.add("橙子");
String oldStr = list.set(0,"西瓜");
System.out.println(oldStr);
// 输出:对应被替换的元素"苹果"
System.out.println(list);
// 输出:[香蕉, 橙子]
}
}
- 查询元素方法
get(int index):获取指定索引处的元素,并返回该元素
public class Test {
public static void main(String[] args) {
// 创建一个空的 ArrayList
ArrayList<String> list = new ArrayList<>();
// 往集合末尾添加元素
list.add("苹果");
list.add("香蕉");
list.add("橙子");
String getStr = list.get(0);
System.out.println(getStr);
// 输出:对应被替换的元素"苹果"
System.out.println(list);
// 输出:[苹果, 香蕉, 橙子]
}
}
3.ArrayList遍历
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("苹果");
list.add("香蕉");
list.add("橙子");
// 普通 for 循环
for (int i = 0; i < list.size(); i++) {
// get(i) 获取第 i 个元素
System.out.println(list.get(i));
}
// 增强for:直接拿元素,不用写索引
for (String fruit : list) {
System.out.println(fruit);
}
// 获取迭代器
for (Iterator<String> it = list.iterator();it.hasNext();) { // 有没有下一个
String fruit = it.next(); // 拿元素
System.out.println(fruit);
}
}
}
4.ArrayList底层原理
底层原理:ArrayList 底层就是一个[动态数组],本质:Object [] 数组 + 自动扩容
底层初始:内部有个 transient Object[] elementData→ 就是一个 Object 类型的数组,啥都能存,默认没放元素时,数组是空数组,一添加数据,才会真正分配空间
扩容机制:第一次 add 元素 → 数组容量变成 10,数组满了再添加 → 自动扩容 1.5 倍,比如:10 → 15 → 22 → 33…
扩容原理:新建一个更大的数组 → 把旧数组复制过去 → 替换引用
三.LinkedList类
1.概述:LinkedList 底层是双向链表,有序可重复,增删快、查询慢,也实现了 List 接口。
2.LinkedList特有方法
- 增加元素方法
addFirst(Object e):向集合的开头位置添加元素
public class Test {
public static void main(String[] args) {
// 创建 LinkedList
LinkedList<String> list = new LinkedList<>();
list.add("苹果");
list.add("香蕉");
list.add("橙子");
// addFirst(Object e) 往头部加
list.addFirst("火龙果");
System.out.println(list);
// [火龙果, 苹果, 香蕉, 橙子]
}
}
addLast(Object e):向集合的末尾添加元素
public class Test {
public static void main(String[] args) {
// 创建 LinkedList
LinkedList<String> list = new LinkedList<>();
list.add("苹果");
list.add("香蕉");
list.add("橙子");
// addLast(Object e) 往尾部加
list.addLast("西瓜");
System.out.println(list);
// [苹果, 香蕉, 橙子, 西瓜]
}
}
- 查询元素方法
getFirst():获取集合头部的元素
public class Test {
public static void main(String[] args) {
// 创建 LinkedList
LinkedList<String> list = new LinkedList<>();
list.add("苹果");
list.add("香蕉");
list.add("橙子");
// getFirst() 获取头部
String first = list.getFirst();
System.out.println(first);
// 苹果
}
}
getLast():获取集合尾部的元素
public class Test {
public static void main(String[] args) {
// 创建 LinkedList
LinkedList<String> list = new LinkedList<>();
list.add("苹果");
list.add("香蕉");
list.add("橙子");
// getLast() 获取尾部
String last= list.getLast();
System.out.println(last);
// 橙子
}
}
get(int index):取出指定位置的元素
public class Test {
public static void main(String[] args) {
// 创建 LinkedList
LinkedList<String> list = new LinkedList<>();
list.add("苹果");
list.add("香蕉");
list.add("橙子");
// get(int index) 获取指定位置
String orderStr = list.get(1);
System.out.println(orderStr);
// 香蕉
}
}
- 删除元素方法
removeFirst():移除头部元素,并且返回当前被删除的元素
public class Test {
public static void main(String[] args) {
// 创建 LinkedList
LinkedList<String> list = new LinkedList<>();
list.add("苹果");
list.add("香蕉");
list.add("橙子");
// removeFirst() 删除头部并返回
String Str = list.removeFirst();
// 输出被删除的头部元素苹果
System.out.println(Str);
// 输出原有集合[香蕉, 橙子]
System.out.println(list);
}
}
removeLast():移除尾部的元素,并且返回当前被删除的元素
public class Test {
public static void main(String[] args) {
// 创建 LinkedList
LinkedList<String> list = new LinkedList<>();
list.add("苹果");
list.add("香蕉");
list.add("橙子");
// removeFirst() 删除头部并返回
String Str = list.removeLast();
// 输出被删除的尾部元素橙子
System.out.println(Str);
// 输出原有集合[苹果, 香蕉]
System.out.println(list);
}
}
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐

所有评论(0)