![](/img/trans.png)
[英]How to get max value in List<Map<String, Object>> at Java8
[英]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.