Java List 接口的核心 API

embedded/2025/3/20 3:36:15/

1. 添加元素

方法:
  • boolean add(E e):将元素添加到列表末尾。

  • void add(int index, E element):将元素插入到指定位置。

  • boolean addAll(Collection<? extends E> c):将集合中的所有元素添加到列表末尾。

  • boolean addAll(int index, Collection<? extends E> c):将集合中的所有元素插入到指定位置。

示例:
java">import java.util.ArrayList;
import java.util.List;public class AddExample {public static void main(String[] args) {List<String> fruits = new ArrayList<>();// 添加单个元素fruits.add("Apple");fruits.add("Banana");System.out.println("After add: " + fruits); // [Apple, Banana]// 在指定位置插入元素fruits.add(1, "Orange");System.out.println("After add at index 1: " + fruits); // [Apple, Orange, Banana]// 添加另一个集合List<String> moreFruits = new ArrayList<>();moreFruits.add("Mango");moreFruits.add("Pineapple");fruits.addAll(moreFruits);System.out.println("After addAll: " + fruits); // [Apple, Orange, Banana, Mango, Pineapple]// 在指定位置插入另一个集合fruits.addAll(2, moreFruits);System.out.println("After addAll at index 2: " + fruits); // [Apple, Orange, Mango, Pineapple, Banana, Mango, Pineapple]}
}

2. 删除元素

方法:
  • boolean remove(Object o):删除指定元素。

  • E remove(int index):删除指定位置的元素。

  • boolean removeAll(Collection<?> c):删除列表中包含在指定集合中的所有元素。

  • boolean retainAll(Collection<?> c):仅保留列表中包含在指定集合中的元素。

  • void clear():清空列表。

示例:
java">import java.util.ArrayList;
import java.util.List;public class RemoveExample {public static void main(String[] args) {List<String> fruits = new ArrayList<>();fruits.add("Apple");fruits.add("Banana");fruits.add("Orange");fruits.add("Mango");System.out.println("Original list: " + fruits); // [Apple, Banana, Orange, Mango]// 删除指定元素fruits.remove("Banana");System.out.println("After remove 'Banana': " + fruits); // [Apple, Orange, Mango]// 删除指定位置的元素fruits.remove(1);System.out.println("After remove index 1: " + fruits); // [Apple, Mango]// 删除多个元素List<String> toRemove = new ArrayList<>();toRemove.add("Apple");toRemove.add("Mango");fruits.removeAll(toRemove);System.out.println("After removeAll: " + fruits); // []// 仅保留指定元素fruits.add("Apple");fruits.add("Banana");fruits.add("Orange");List<String> toRetain = new ArrayList<>();toRetain.add("Apple");fruits.retainAll(toRetain);System.out.println("After retainAll: " + fruits); // [Apple]// 清空列表fruits.clear();System.out.println("After clear: " + fruits); // []}
}

3. 获取和修改元素

方法:
  • E get(int index):获取指定位置的元素。

  • E set(int index, E element):修改指定位置的元素。

  • List<E> subList(int fromIndex, int toIndex):获取子列表。

示例:
java">import java.util.ArrayList;
import java.util.List;public class GetSetExample {public static void main(String[] args) {List<String> fruits = new ArrayList<>();fruits.add("Apple");fruits.add("Banana");fruits.add("Orange");// 获取元素String fruit = fruits.get(1);System.out.println("Element at index 1: " + fruit); // Banana// 修改元素fruits.set(1, "Blueberry");System.out.println("After set: " + fruits); // [Apple, Blueberry, Orange]// 获取子列表List<String> subList = fruits.subList(1, 3);System.out.println("SubList: " + subList); // [Blueberry, Orange]}
}

4. 查找元素

方法:
  • boolean contains(Object o):判断列表是否包含指定元素。

  • int indexOf(Object o):返回指定元素首次出现的索引。

  • int lastIndexOf(Object o):返回指定元素最后一次出现的索引。

示例:
java">import java.util.ArrayList;
import java.util.List;public class SearchExample {public static void main(String[] args) {List<String> fruits = new ArrayList<>();fruits.add("Apple");fruits.add("Banana");fruits.add("Orange");fruits.add("Banana");// 判断是否包含元素System.out.println("Contains 'Banana': " + fruits.contains("Banana")); // true// 查找元素首次出现的索引System.out.println("Index of 'Banana': " + fruits.indexOf("Banana")); // 1// 查找元素最后一次出现的索引System.out.println("Last index of 'Banana': " + fruits.lastIndexOf("Banana")); // 3}
}

5. 遍历列表

方法:
  • 增强 for 循环。

  • Iterator<E> iterator():返回一个迭代器。

  • ListIterator<E> listIterator():返回一个列表迭代器。

  • ListIterator<E> listIterator(int index):从指定位置开始返回一个列表迭代器。

示例:
java">import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;public class IterationExample {public static void main(String[] args) {List<String> fruits = new ArrayList<>();fruits.add("Apple");fruits.add("Banana");fruits.add("Orange");// 使用增强 for 循环System.out.println("Using for-each loop:");for (String fruit : fruits) {System.out.println(fruit);}// 使用迭代器System.out.println("Using iterator:");var iterator = fruits.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}// 使用列表迭代器(支持双向遍历)System.out.println("Using listIterator:");ListIterator<String> listIterator = fruits.listIterator();while (listIterator.hasNext()) {System.out.println(listIterator.next());}}
}

6. 排序

方法:
  • void sort(Comparator<? super E> c):根据比较器对列表排序。

示例:
java">import java.util.ArrayList;
import java.util.List;public class SortExample {public static void main(String[] args) {List<String> fruits = new ArrayList<>();fruits.add("Orange");fruits.add("Apple");fruits.add("Banana");// 按自然顺序排序fruits.sort(null);System.out.println("After sorting: " + fruits); // [Apple, Banana, Orange]}
}

7. 转换为数组

方法:
  • Object[] toArray():转换为数组。

  • <T> T[] toArray(T[] a):转换为指定类型的数组。

示例:
java">import java.util.ArrayList;
import java.util.List;public class ToArrayExample {public static void main(String[] args) {List<String> fruits = new ArrayList<>();fruits.add("Apple");fruits.add("Banana");fruits.add("Orange");// 转换为数组Object[] array = fruits.toArray();System.out.println("Array: " + Arrays.toString(array)); // [Apple, Banana, Orange]// 转换为指定类型的数组String[] stringArray = fruits.toArray(new String[0]);System.out.println("String Array: " + Arrays.toString(stringArray)); // [Apple, Banana, Orange]}
}

8. 其他方法

方法:
  • int size():返回列表的大小。

  • boolean isEmpty():判断列表是否为空。

  • boolean equals(Object o):判断列表是否与指定对象相等。

  • int hashCode():返回列表的哈希码。

示例:
java">import java.util.ArrayList;
import java.util.List;public class OtherMethodsExample {public static void main(String[] args) {List<String> fruits = new ArrayList<>();fruits.add("Apple");fruits.add("Banana");// 获取列表大小System.out.println("Size: " + fruits.size()); // 2// 判断列表是否为空System.out.println("Is empty: " + fruits.isEmpty()); // false// 判断列表是否相等List<String> anotherList = new ArrayList<>();anotherList.add("Apple");anotherList.add("Banana");System.out.println("Equals: " + fruits.equals(anotherList)); // true}
}

http://www.ppmy.cn/embedded/174034.html

相关文章

Deepseek API+Python测试用例一键生成与导出-V1.0.2【实现需求文档图片识别与用例生成自动化】

在测试工作中&#xff0c;需求文档中的图片&#xff08;如界面设计图、流程图&#xff09;往往是测试用例生成的重要参考。然而&#xff0c;手动提取图片并识别内容不仅耗时&#xff0c;还容易出错。本文将通过一个自研小工具&#xff0c;结合 PaddleOCR 和大模型&#xff0c;自…

三月九次前端面试复盘:当场景题成为通关密钥

三月初集中面了包括字节、美团、滴滴在内的9家公司&#xff0c;经历7场技术面2场Leader面后&#xff0c;发现如今的面试逻辑已发生根本转变。这里分享真实经历与题目&#xff0c;供近期求职者参考。 一、面试形态变化&#xff1a;从理论背诵到实战推演 1. 八股文边缘化&#…

python web开发flask库安装与使用

要在 Python 中使用 Flask 进行 Web 开发&#xff0c;首先需要安装 Flask 库。Flask 是一个轻量级的 Web 框架&#xff0c;它使开发者能够快速构建网站或 web 服务。下面是安装 Flask 和创建一个简单的 Flask 应用程序的基本步骤。 安装 Flask 确保您的环境中已经安装了 Pyth…

SpringBoot使用HibernateValidation

概述 Bean Validation源于JSR-303 &#xff0c;而JSR303是 Java EE 6 中的一项子规范。JSR349、JSR380是其升级版&#xff0c;添加了一些新的特性。Oracle公司传统艺能&#xff0c;一流公司定标准&#xff0c;它们只定义了一些校验注解&#xff08;Constraint&#xff09;&…

vue 仿deepseek前端开发一个对话界面

后端&#xff1a;调用deepseek的api&#xff0c;所以返回数据格式和deepseek相同 {"model": "DeepSeek-R1-Distill-Qwen-1.5B", "choices": [{"index": 0, "delta": {"role": "assistant", "cont…

Blender4.3雕刻笔刷简介

Blender4.3雕刻笔刷简介 添加/减去笔刷(Add/Subtract Brushes)对比度笔刷(Contrast Brushes) 添加/减去笔刷(Add/Subtract Brushes) 名称英文名称快捷键描述官方文档描述示意图球形笔刷Blob画一个圆圆突起的球绘制时放大网格。有助于在笔触上实现额外的膨胀效果。黏塑Clay更加…

MySQL启动报错/var/lib/mysql‘ for UNIX socket file don‘t exists.

错误呈现 解决办法 启动MySQL服务时&#xff0c;会优先在/etc/目录下查找my.cnf&#xff0c;所以把这个文件重命名或删除重启服务就好了。 我先查看下我的 /etc/my.cnf 文件 删除 my.cnf 文件 rm -rf my.cnf 启动MySQL service mysql start 这样就解决了 systemctl start my…

RPA 职业前景:个人职场发展的 “新机遇”

1. RPA职业定义与范畴 1.1 RPA核心概念 机器人流程自动化&#xff08;RPA&#xff09;是一种通过软件机器人模拟人类操作&#xff0c;自动执行重复性、规则性任务的技术。RPA的核心在于其能够高效、准确地处理大量数据和流程&#xff0c;减少人工干预&#xff0c;从而提高工作…