使用 Java 8 中的 Stream API 可以非常方便地对 List 中的元素进行过滤,示例代码如下:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList('Jack', 'Jill', 'John', 'Jane');

        // 过滤出以J开头的名字
        List<String> filteredNames = names.stream()
                .filter(name -> name.startsWith('J'))
                .collect(Collectors.toList());

        System.out.println(filteredNames); // 输出 [Jack, Jill, John, Jane]

        // 过滤出长度大于3的名字,并将其转换为大写形式
        List<String> filteredAndUppercaseNames = names.stream()
                .filter(name -> name.length() > 3)
                .map(String::toUpperCase)
                .collect(Collectors.toList());

        System.out.println(filteredAndUppercaseNames); // 输出 [JACK, JILL, JOHN]
    }
}

在上面的示例中,我们首先使用Arrays.asList方法创建了一个包含4个字符串的 List 对象,然后使用stream方法将其转换为一个 Stream 对象。

接着,我们使用filter方法对 Stream 对象进行过滤,只保留以 J 开头的字符串。使用collect方法将过滤后的元素收集到一个新的 List 对象中,并将其赋值给filteredNames变量。

我们还演示了如何同时使用filtermap方法,对元素进行多步操作。在上面的示例中,我们过滤出长度大于 3 的字符串,并将其转换为大写形式。最后将处理后的元素收集到一个新的 List 对象中,并将其赋值给filteredAndUppercaseNames变量。

需要注意的是,Stream 对象只能被消费一次。如果你需要对同一个 List 对象进行多次操作,需要重新创建 Stream 对象。

Java 使用 Stream API 过滤 List 数据

原文地址: https://www.cveoy.top/t/topic/odpy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录