Java8 Stream 由一个 List 转化成另一个 List 案例 Java8 Stream 是一个功能强大的工具,可以将一个 List 转化成另一个 List,今天我们就来探讨这个话题。 什么是 Java8 Stream Java8 Stream 是 Java 语言的一个新特性,它允许我们以一种声明式的方式来处理数据。Stream 可以看作是一个延迟计算的数据结构,它可以根据需要生成元素,而不需要一次性加载所有元素。 Java8 Stream 由一个 List 转化成另一个 List 现在,我们将学习如何使用 Java8 Stream 将一个 List 转化成另一个 List。下面是一个简单的示例: ```java List<String> stringList = new ArrayList<>(); stringList.add("a11"); stringList.add("b11"); stringList.add("c11"); stringList.add("d11"); stringList.add("e11"); List<Map<String,String>> stringList1 = stringList.stream() .map(item -> { Map<String,String> map = new HashMap<>(); map.put("name", item.toUpperCase()); return map; }) .collect(Collectors.toList()); ``` 在上面的代码中,我们首先创建了一个 List,里面包含了五个字符串元素。然后,我们使用 Stream 将这个 List 转化成另一个 List,其中每个元素是一个 Map。Map 的键是 "name”,值是原始字符串的大写形式。 Java8 Stream 的其他应用 除了将一个 List 转化成另一个 List 之外,Java8 Stream 还有很多其他的应用。下面我们来看一些示例: 1. 利用 Stream().forEach() 循环处理 List ```java List<String> list = Lists.newArrayList(); list.add("1"); list.add("2"); list.add("3"); list.stream().forEach(string -> { System.out.println(string); }); ``` 在上面的代码中,我们使用 Stream().forEach() 方法来循环处理 List,并将每个元素打印出来。 2. 利用 Stream().map() 处理 List,并给另外一个 List 赋值 ```java List<String> list1 = Lists.newArrayList(); List<String> list2 = Lists.newArrayList(); list1.add("1"); list1.add("2"); list1.add("3"); list2 = list1.stream().map(string -> { return "stream().map()处理之后:" + string; }).collect(Collectors.toList()); list2.stream().forEach(string -> { System.out.println(string); }); ``` 在上面的代码中,我们使用 Stream().map() 方法来处理 List,并将每个元素转换成一个新的字符串,最后将结果assign给另一个 List。 3. 利用 Stream().filter() 处理 List,对该 List 进行过滤处理 ```java List<String> list1 = Lists.newArrayList(); List<String> list2 = Lists.newArrayList(); list1.add("1"); list1.add("1"); list1.add("2"); list1.add("3"); list2 = list1.stream().filter(s -> s != "1").collect(Collectors.toList()); System.out.println(list2.toString()); ``` 在上面的代码中,我们使用 Stream().filter() 方法来对 List 进行过滤处理,将所有元素为 "1" 的元素去除,最后将结果assign给另一个 List。 结论 今天,我们学习了如何使用 Java8 Stream 将一个 List 转化成另一个 List,同时还学习了一些其他的应用,例如使用 Stream().forEach() 循环处理 List、使用 Stream().map() 处理 List,并给另外一个 List 赋值、使用 Stream().filter() 处理 List,对该 List 进行过滤处理。这些技术可以帮助我们更加灵活地处理数据,我们可以根据需要选择合适的方法来处理数据。
- 粉丝: 4
- 资源: 933
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 打包和分发Rust工具.pdf
- SQL中的CREATE LOGFILE GROUP 语句.pdf
- C语言-leetcode题解之第172题阶乘后的零.zip
- C语言-leetcode题解之第171题Excel列表序号.zip
- C语言-leetcode题解之第169题多数元素.zip
- ocr-图像识别资源ocr-图像识别资源
- 图像识别:基于Resnet50 + VGG16模型融合的人体细胞癌症分类模型实现-图像识别资源
- C语言-leetcode题解之第168题Excel列表名称.zip
- C语言-leetcode题解之第167题两数之和II-输入有序数组.zip
- C语言-leetcode题解之第166题分数到小数.zip