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) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

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

3.2、LinkedList

java.util.LinkedList:底层是双向链表结构,查询慢,增删快。是一个方便元素添加、删除的集合。不是同步的(多线程,线程不安全)。在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。

双向链表.png

双向链表.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。

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 日
如果觉得我的文章对你有用,请随意赞赏