繁体   English   中英

如何在列表中获取最小值和最大值<map<> &gt; 对象

[英]how to Get Min and Max values in List<map<>> object

嗨,我有以下列表> 我需要根据通道类型找到最小值和最大值,例如:485_0x07="Energy",485_0x08="Energy",485_0x06="Energy" 基于 Energy 键值

数据输入格式如下:

[{updatedTime=2017-10-24 23:00:55, 
  playload={"485_0x07":{"Energy":"1750.0","Voltage":"244.83","Current":"0.095795"},
            "485_0x06":{"Energy":"5761.0","Voltage":"244.31","Current":"10.1815"},
            "485_0x08":{"Energy":"2814.0","Voltage":"245.04","Current":"0.469673"},
            "485_0x01":{"Energy":"0.0","Voltage":"0.0","Current":"0.0"}}}, 
 {updatedTime=2017-10-24 23:01:05,
  playload={"485_0x07":{"Energy":"1750.0","Voltage":"244.83","Current":"0.095795"},
            "485_0x06":{"Energy":"5761.0","Voltage":"244.31","Current":"10.1815"},
            "485_0x08":{"Energy":"2814.0","Voltage":"245.04","Current":"0.469673"},
            "485_0x01":{"Energy":"0.0","Voltage":"0.0","Current":"0.0"}}}, 
 {updatedTime=2017-10-24 23:59:49,
  playload={"485_0x07":{"Energy":"1754.0","Voltage":"238.99","Current":"0.100577"},
            "485_0x06":{"Energy":"5762.0","Voltage":"238.04","Current":"10.1387"},
            "485_0x08":{"Energy":"2814.0","Voltage":"238.84","Current":"0.43637"},
            "485_0x01":{"Energy":"0.0","Voltage":"0.0","Current":"0.0"}}}] 

谢谢

如果没有任何提供的类,我只会假设您输入中的每个元素都有一个类。 您可以尝试使用这样的流:

input.stream()
     .flatMap(hbaseObject -> hbaseObject.getPayload().getChannels().stream())
     .collect(Collectors.groupingBy(channel -> channel.getKey(), 
                                    Collectors.summarizingDouble(channel -> channel.getEnergy()))

这会给你一个Map<ChannelKey, DoubleSummaryStatistics> 统计对象包含最小值、最大值和平均值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM