Java集合框架之List接口详解
- IT业界
- 2025-08-22 18:06:02

目录
一、List接口概述
二、List接口常见实现类
三、List接口特有方法:
1.元素操作
2.查找元素位置
3.子列表与不可变列表
四、List特有迭代器:ListIterator
1.特有的迭代方式
2.ListIterator接口中的常用方法:
⑴.void add(E e):在光标位置插入元素。(会移动光标)
⑵.boolean hasPrevious(); 判断当前光标指向位置的上一个位置是否存在元素。(只获取不移动)
⑶.E previous(); 获取上一个元素(将光标向上移动一位,然后将光标指向的元素返回)(会移动光标)
⑷.int nextIndex(); 获取光标指向的那个位置的下标(只获取不移动)
⑸.void set(E e);
五、List接口使用Comparator排序
1.回顾数组中自定义类型是如何排序的?
2.List集合的排序
⑴对Comparator提供一个实现类,并重写compare方法来指定比较规则。
⑵不单独写比较器,使用匿名内部类省代码
一、List接口概述
List是Java集合框架中最重要的接口之一,继承自Collection接口,用于存储有序、可重复的元素集合。其核心特点包括:
有序性:元素按插入顺序存储,每个元素都有对应的下标(从0开始递增)。
可重复性:允许存储相同的元素(如多次添加"Java")。
基于索引的操作:支持通过下标直接访问、插入、修改和删除元素。
二、List接口常见实现类ArrayList:基于动态数组实现,查询效率高(时间复杂度O(1)),增删效率较低(需移动元素)。
LinkedList:基于双向链表实现,增删效率高(时间复杂度O(1)),查询效率较低(需遍历链表)。
Vector:线程安全的动态数组,性能较低(方法使用synchronized修饰)。
Stack:继承自Vector,实现栈结构(后进先出)。
List<String> list = new ArrayList<>(); list.add(0, "Java"); // 插入到第一个位置 三、List接口特有方法:(在Collection和SequencedCollection中没有的方法,只适合List家族使用的方法,这些方法都和下标有关系。)
1.元素操作void add(int index, E element)
在指定下标插入元素,原位置及后续元素后移。
List<String> list = new ArrayList<>(); list.add(0, "Java"); // 插入到第一个位置E set(int index, E element) 修改指定下标处的元素,返回被替换的旧值。
String oldValue = list.set(0, "Python"); // 将第一个元素改为"Python"E get(int index) 根据下标获取元素,支持通过下标遍历集合。
for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }E remove(int index) 删除指定下标处的元素,返回被删除的元素。
String removed = list.remove(0); // 删除第一个元素 2.查找元素位置int indexOf(Object o) 返回元素第一次出现的下标,未找到返回-1。
int firstIndex = list.indexOf("Java");int lastIndexOf(Object o) 返回元素最后一次出现的下标。
int lastIndex = list.lastIndexOf("Java"); 3.子列表与不可变列表List<E> subList(int fromIndex, int toIndex) 截取子列表(范围[fromIndex, toIndex)),对子列表的修改会影响原集合。
List<String> subList = list.subList(1, 3); // 获取下标1到2的元素static List<E> of(E... elements)可变长参数 生成一个不可修改的列表(Java 9+)。
List<String> immutableList = List.of("A", "B", "C"); // immutableList.add("D"); // 抛出UnsupportedOperationException 四、List特有迭代器:ListIterator 1.特有的迭代方式ListIterator<E> listIterator(); 获取List集合特有的迭代器(该迭代器功能更加强大,但只适合于List集合使用)
ListIterator<E> listIterator(int index); 从列表中的指定位置开始,返回列表中元素的列表迭代器
示例代码:
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; public class ListIteratorTest { public static void main(String[] args) { //创建集合List List<String> names=new ArrayList<>(); //添加元素 names.add("zhangsan"); names.add("lisi"); names.add("wangwu"); names.add("zhaoliu"); //使用普通的通用迭代器遍历 Iterator<String> it=names.iterator(); while(it.hasNext()){ String name=it.next(); System.out.println(name); } //使用ListIterator进行遍历 ListIterator<String> li = names.listIterator(); while (li.hasNext()) { String name = li.next(); System.out.println(name); } } }运行结果:
2.ListIterator接口中的常用方法:Java集合框架之List接口详解由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Java集合框架之List接口详解”