Java List 接口的核心 API

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
    }
}
相关推荐
找不到、了4 分钟前
关于MyBatis 的懒加载(Lazy Loading)机制
java·mybatis
啃火龙果的兔子32 分钟前
快速搭建Java服务指南
java·开发语言
未来之窗软件服务34 分钟前
智慧收银系统开发进销存库存统计,便利店、水果店、建材与家居行业的库存汇总管理—仙盟创梦IDE
java·开发语言·ide·进销存·仙盟创梦ide·东方仙盟·收银台
CodeCraft Studio1 小时前
国产化PDF处理控件Spire.PDF教程:Java 提取 PDF 图片,高质量提取与图片过滤技巧
java·python·pdf·国产化·文档处理·spire·pdf图片提取
去伪存真1 小时前
前端get到的新技能--手把手教你使用Python实现查询基金年度排名功能
前端·python
PixelMind1 小时前
【IQA技术专题】DISTS代码讲解
图像处理·人工智能·python·算法·iqa
JavaEdge在掘金1 小时前
Git工作面试必知必会操作-命令行篇
python
香蕉可乐荷包蛋1 小时前
一次性接收大量上传图片,后端优化方式
后端·python
山烛2 小时前
逻辑回归详解:从数学原理到实际应用
python·算法·机器学习·逻辑回归
枫叶落雨2222 小时前
Hutool 的 WordTree(敏感词检测)
java·开发语言