Java List 过滤

在 Java 中,List 是一种常用的集合类型,它可以用来存储各种类型的对象。当我们需要对 List 进行过滤操作时,可以使用一些方法来实现。本文将介绍如何在 Java 中使用不同的方法来过滤 List,并给出相应的代码示例。

方法一:使用 for 循环遍历

最简单的方法是使用 for 循环遍历 List,并在循环中进行判断和过滤操作。下面是一个示例代码:

List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> filteredNumbers = new ArrayList<>();

for (Integer number : numbers) {
    if (number % 2 == 0) {
        filteredNumbers.add(number);
    }
}

上述代码中,我们创建了一个包含整数的 List,并使用 for 循环遍历该 List。在循环中,我们判断每个元素是否为偶数,如果是,则将其添加到 filteredNumbers 中。

方法二:使用 Java 8 的 Stream API

Java 8 引入了 Stream API,可以方便地对集合进行各种操作,包括过滤。下面是使用 Stream API 进行 List 过滤的示例代码:

List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> filteredNumbers = numbers.stream()
                                       .filter(number -> number % 2 == 0)
                                       .collect(Collectors.toList());

上述代码中,我们首先将 List 转换为 Stream,然后使用 filter 方法对每个元素进行判断和过滤操作。最后,使用 collect 方法将过滤后的元素收集到一个新的 List 中。

方法三:使用 Guava 库

Guava 是 Google 提供的一套 Java 核心库,其中包含了一些方便的集合工具类。Guava 的 Iterables 类提供了 filter 方法,可以用于对 List 进行过滤。下面是使用 Guava 进行 List 过滤的示例代码:

List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Iterable<Integer> filteredNumbers = Iterables.filter(numbers, number -> number % 2 == 0);
List<Integer> filteredList = Lists.newArrayList(filteredNumbers);

上述代码中,我们使用 Iterables 类的 filter 方法对 List 进行过滤,并将过滤结果转换为一个新的 List。

总结

本文介绍了三种常用的方法来对 Java List 进行过滤操作:使用 for 循环遍历、使用 Java 8 的 Stream API 和使用 Guava 库。根据实际需求和个人偏好,可以选择适合的方法来实现 List 过滤。

方法 代码示例
使用 for 循环 List<Integer> filteredNumbers = new ArrayList<>();<br>for (Integer number : numbers) {<br>if (number % 2 == 0) {<br>filteredNumbers.add(number);<br>}<br>}
使用 Stream API List<Integer> filteredNumbers = numbers.stream().filter(number -> number % 2 == 0).collect(Collectors.toList());
使用 Guava Iterable<Integer> filteredNumbers = Iterables.filter(numbers, number -> number % 2 == 0);<br>List<Integer> filteredList = Lists.newArrayList(filteredNumbers);

在实际开发中,根据 List 的大小和过滤条件的复杂程度,选择合适的方法可以提高代码的可读性和性能。希望本文对你理解和使用 Java List 过滤有所帮助。

![饼状图](mermaid pie "Java List 过滤方法占比" title Java List 过滤方法占比 "使用 for 循环" : 40 "使用 Stream API" : 50 "使用 Guava" : 10 )