Stream 操作写法详解 Stream 操作是 Java 8 中引入的一种函数式编程方式,旨在简化数据处理和操作。Stream 操作可以将复杂的数据处理过程分解成多个步骤,每个步骤执行特定的操作,最后将结果收集起来。 Stream 创建 Stream 可以通过多种方式创建,包括: 1. Collection.stream():从集合中创建 Stream。 2. Stream.of():从一个或多个元素创建 Stream。 3. Arrays.stream():从数组中创建 Stream。 Stream 操作 Stream 操作可以分为两类:中间操作和终端操作。 中间操作 中间操作是指可以将 Stream 转换、过滤、排序等操作。这些操作返回一个新的 Stream,允许链式调用多个操作。 1. filter():过滤 Stream 中的元素,返回满足条件的元素。 2. map():将 Stream 中的元素转换成另一种类型。 3. peek():对 Stream 中的元素执行某种操作,但不改变 Stream 本身。 4. sorted():对 Stream 中的元素进行排序。 5. skip():跳过 Stream 中的某些元素。 终端操作 终端操作是指将 Stream 转换成其他形式的数据结构,例如集合、数组等。 1. collect():将 Stream 转换成集合。 2. reduce():将 Stream 中的元素组合成一个值。 3. forEach():对 Stream 中的每个元素执行某种操作。 Stream 示例 1. 将集合转换成另一种类型的集合: ```java List<Map<String, Object>> numberData = dataList.stream() .map(obj -> { Map<String, Object> numberMap = new HashMap<>(); numberMap.put("name", obj.get("feeTypeName")); numberMap.put("y", obj.get("totalNumber")); return numberMap; }) .collect(Collectors.toList()); ``` 2. 将 Stream 中的元素转换成字符串: ```java List<String> merNoList = respList.stream() .map(map -> DataTran.ObjectToString(map, "merNo")) .collect(Collectors.toList()); ``` 3. 对 Stream 中的元素执行某种操作: ```java resultList = resultList.stream() .peek(obj -> obj.put("y", BossStringUtils.formatAmountFenToYuan(DataTran.ObjectToString(obj, "y")))) .collect(Collectors.toList()); ``` 4. 将 Stream 转换成字符串: ```java String merNoSqlStr = a2mList.stream() .map(obj -> DataTran.ObjectToString(obj, "MerNo")) .collect(Collectors.joining(",")); ``` 5. 将 Stream 排序: ```java mergedDataList = mergedDataList.stream() .sorted(Comparator.comparing(ChartsOfFee::getName)) .collect(Collectors.toList()); ``` 6. 对 Stream 中的元素执行某种操作: ```java mergedDataList.stream() .peek(obj -> obj.put("y", BossStringUtils.formatAmountFenToYuan(DataTran.ObjectToString(obj, "y")))) .collect(Collectors.toList()); ``` 7. 将 Stream 转换成长整型: ```java long refundAmount = list.stream() .mapToLong(map -> DataTran.ObjectToLong(map, "refund_amount")) .sum(); ``` 8. 将 Stream 转换成集合: ```java List<UserDTO> userDTOS = userService.query() .in("id", ids) .last("ORDER BY FIELD(id," + idStr + ")") .list() .stream() .map(user -> BeanUtil.copyProperties(user, UserDTO.class)) .collect(Collectors.toList()); ``` 9. 将 Stream 转换成数组: ```java List<Long> ids = new ArrayList<>(list.size()); list.stream().skip(from).forEach(result -> { // 4.2.获取店铺id String shopIdStr = result.getContent().getNam; }); ``` Stream 操作提供了一种简洁且灵活的方式来处理数据,能够帮助开发者更方便地处理复杂的数据处理任务。
- 粉丝: 3
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助