stream快速数据处理

filter (根据类型(type=1、type=2),获取type=1的newList)

newList = list.stream().filter(bean -> "1".equals(bean.getType())).collect(Collectors.toList());

map (将List中的type字段,组成newList)

newList = list.stream().map(Bean::getType).collect(Collectors.toList());

// 若需要执行其他操作
newList = list.stream().map(item -> {
to do something
}

toMap(将List中的id、type字段,组成newMap)

newMap = list.stream().collect(Collectors.toMap(Bean::getId, Bean::getType));

groupingBy (按照type分组,返回Map<key,List)

Map<Integer, List<Bean>> map = new HashMap<Long, List<Bean>>();
map = list.stream().collect(Collectors.groupingBy(Bean::getType));
// 循环map、对分组数据进行处理
for (Integer type : map.keySet()) {
	List<Bean> keyList = map.get(type);
}

groupingBy (按照type分组,计算个数、返回List<Map<String, Object>>)

List<Map<String, Object>> listMap = list.stream().collect(Collectors.groupingBy(Bean::getType, Collectors.counting())).entrySet().stream().map(entry -> {
            Map<String, Object> map = new HashMap<>();
            map.put("type", entry.getKey());
            map.put("count", entry.getValue());
            return map;
        }).collect(Collectors.toList());

sorted (根据type类型降序排列)

newList = list.stream().filter(item -> item.getType() !=null ).collect(Collectors.toList())
                .stream().sorted(Comparator.comparing(Bean::getType).reversed()).collect(Collectors.toList());

reversed(为空放置最后)

newList = list.stream().sorted(Comparator.comparing(Bean::getType,Comparator.nullsLast(Integer::compareTo))
                            .reversed()).collect(Collectors.toList());

anyMatch (抽出ListA的数据,要满足ListA的id=ListB的id相等)

newList = listA.stream().filter(BeanA -> listB.stream()
                                 .anyMatch(BeanB -> beanB.getId().equals(BeanB.getId()))).collect(Collectors.toList());

mapToDouble (求list中Double字段平均值)

avg = list.stream().mapToDouble(Double::doubleValue).average().orElse(0.00);

collect(返回list中某字段,用逗号分隔)

返回String类型
newStr = list.stream().filter(item -> StringUtils.isEmpty(item.getId()))
                .collect(Collectors.mapping(item1 -> ConvUtils.convToString(item1.getId()), Collectors.joining(",")));

返回Map类型(获取重复Num数据)

newMap = list.stream().filter(item -> !StringUtils.isEmpty(item.getId()))
                .collect(Collectors.groupingBy(Bean::getId,
                        Collectors.mapping(item -> ConvUtils.convToString(item.getNum()),
                                Collectors.joining(","))))
                .entrySet().stream().filter(item -> item.getValue().chars().filter(ch -> ch == ',').count() >= 1)
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

======================================= 以上有问题、欢迎留言========================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
DeepStream是一个针对视频分析和物联网的开发平台,具有以下数据处理的特点: 1. 高效性:DeepStream利用GPU加速和并行处理技术,能够实时处理多路视频流,并且具备较低的延迟。它可以在多个视频流之间进行智能分析和数据处理,使得系统具备高吞吐量和高并发能力。 2. 可扩展性:DeepStream支持多种不同的数据源,包括本地文件、网络流和摄像头等,并且可以灵活地扩展到多个节点或设备上。这样可以实现分布式处理,提高系统的整体性能和可靠性。 3. 实时性:DeepStream采用了流式处理的方式,能够在数据流中实时提取和分析重要信息。它具备快速的推理能力,可以进行目标检测、跟踪、分类等复杂的计算任务,并在实时场景中做出响应。 4. 智能化:DeepStream集成了深度学习框架和算法库,提供了丰富的预训练模型和算法,可以进行人脸识别、行为分析、车牌识别等高级智能分析。同时,它支持开发者自定义模型和算法,满足个性化需求。 5. 灵活性:DeepStream提供了易于使用的API和工具,使得开发者可以快速构建和部署自定义的数据处理管道。它支持多种编程语言和平台,包括C/C++、Python和TensorRT等,使得开发者能够选择最适合自己的开发环境。 总之,DeepStream通过高效、可扩展、实时、智能和灵活的数据处理特点,为视频分析和物联网应用提供了强大的开发平台。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值