Loading... > java.util.List:接口。 # 1、特点 1. 元素存取有序; 2. 元素带索引,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。 3. . 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。 # 2、常用方法 根据元素索引来操 作集合的特有方法: `public void add(int index, E element)` :将指定的元素,添加到该集合中的指定位置上。 `public E get(int index)` :返回集合中指定位置的元素。 `public E remove(int index)` :移除列表中指定位置的元素, 返回的是被移除的元素。 `public E set(int index, E element)` :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。 ```java has-numbering public static void main(String[] args) { // 创建List集合对象 List<String> list = new ArrayList<>(); // 集合尾部添加元素 list.add("张三"); list.add("李四"); list.add("王五"); System.out.println(list); // 指定位置添加元素 list.add(1, "小学妹"); System.out.println(list); // 删除指定位置的元素,返回被删除的元素 System.out.println(list.remove(2)); System.out.println(list); // 更新指定位置的元素,返回更新前的值 System.out.println(list.set(0, "大师姐"));; System.out.println(list); // 遍历,获取元素 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } // 增强for遍历 for (String s : list) { System.out.println(s); } } ``` # 3、子类 ## 3.1、ArrayList java.util.ArrayList:底层是长度可变的数组结构,查询快,增删慢。不是同步的(多线程,线程不安全)。 由于日常开发中使用最多的功能为 查询数据、遍历数据,所以 ArrayList 是最常用的集合。 [ArrayList](https://blog.fivk.cn/archives/827.html) ## 3.2、LinkedList java.util.LinkedList:底层是双向链表结构,查询慢,增删快。是一个方便元素添加、删除的集合。不是同步的(多线程,线程不安全)。在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。 ![双向链表.png](https://blog.fivk.cn/usr/uploads/2021/11/2153332124.png) LinkedList提供了一些操作首尾元素的方法: `public void addFirst(E e)` :将指定元素插入此列表的开头。 `public void addLast(E e)` :将指定元素添加到此列表的结尾。 `public E getFirst()` :返回此列表的第一个元素。 `public E getLast()` :返回此列表的最后一个元素。 `public E removeFirst()` :移除并返回此列表的第一个元素。 `public E removeLast()` :移除并返回此列表的最后一个元素。 `public E pop()` :从此列表所表示的堆栈处弹出一个元素。 `public void push(E e)` :将元素推入此列表所表示的堆栈。 `public boolean isEmpty()` :如果列表不包含元素,则返回true。 ```java has-numbering public static void main(String[] args) { LinkedList<String> link = new LinkedList<>(); // 添加元素 link.addFirst("张三"); link.addFirst("李四"); link.addFirst("王五"); link.addLast("小师妹"); System.out.println(link); // 获取元素 System.out.println(link.getFirst()); System.out.println(link.getLast()); // 删除元素 System.out.println(link.removeFirst()); System.out.println(link.removeLast()); System.out.println(link); // 向集合中推入数据(类似于堆栈、队列操作) link.push("大师姐"); System.out.println(link); while (!link.isEmpty()) { // 判断集合不为空 System.out.println(link.pop()); // 弹出集合中的栈顶元素(类似于堆栈操作) } System.out.println(link); } ``` ## 3.3、Vector java.util.Vector:底层是可增长的对象数组,是线程同步的(单线程,线程安全)。 > 感谢小伙伴们的关注! > 你的点赞、评论、关注、收藏是对博主的最大鼓励! > 持续更新JavaSE学习笔记!欢迎订阅专栏! 最后修改:2021 年 11 月 11 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏