Java 中 Stream 的 map / reduce

map 表示映射
reduce 表示归约

一般的使用 map 实现把流中的每个对象映射为其下的具体属性
使用 reduce 实现把所有属性值归约为最终的一个相同数据类型的属性值

Integer intValue = list.stream()
		// map 映射 Employee 为其对应的 Integer id
        .map(Employee::getId)
        // reduce 归约为所有 id 相加
        .reduce(0, Integer::sum);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java 8Stream API来实现将Map转换为JSONObject。具体步骤如下: 1. 使用entrySet()方法将Map转换为Set<Map.Entry<K, V>>类型的集合。 2. 调用Stream APImap()方法,将每个Map.Entry对象转换为JSONObject的键值对。 3. 使用collect()方法将所有的JSONObject键值对收集到一个新的JSONObject对象。 下面是一个示例代码: ``` import org.json.JSONObject; import java.util.Map; import java.util.stream.Collectors; public class MapToJson { public static JSONObject mapToJson(Map<String, Object> map) { JSONObject json = map.entrySet() .stream() .map(entry -> { Object value = entry.getValue(); if (value instanceof Map) { value = mapToJson((Map) value); } else if (value instanceof List) { value = listToJson((List) value); } return new JSONObject().put(entry.getKey(), value); }) .reduce(new JSONObject(), JSONObject::put, JSONObject::put); return json; } public static JSONArray listToJson(List<Object> list) { JSONArray json = list.stream() .map(value -> { if (value instanceof Map) { value = mapToJson((Map) value); } else if (value instanceof List) { value = listToJson((List) value); } return value; }) .collect(Collectors.toCollection(JSONArray::new)); return json; } } ``` 这个代码可以将Map转换为JSONObject或JSONArray,具体使用方式可以根据需求进行调整。需要注意的是,在使用Stream API时,需要对Map的值进行类型判断并递归处理,这样才能保证最终的JSONObject或JSONArray对象正确无误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值