java集合多个最大值_Java 8 Stream 求集合元素每个属性的最大值
Java 8 Stream 求集合元素每個屬性的最大值,賦值給新對象
public class Mqtt {
private int temperature;
private int humidity;
private int methane;
...
}
@Test
public void contextLoads() {
List list = new ArrayList<>();
list.add(new Mqtt(1,1,1));
list.add(new Mqtt(2,2,2));
list.add(new Mqtt(3,3,3));
}
問題出現的環境背景及自己嘗試過哪些方法
就是一次一次的取stream處理,想請教能否一次stream得出呢
Optional maxTemperature = list.stream().max(Comparator.comparingInt(Mqtt::getTemperature));
Optional maxMethane = list.stream().max(Comparator.comparingInt(Mqtt::getMethane));
Optional maxHumidity = list.stream().max(Comparator.comparingInt(Mqtt::getHumidity));
Mqtt mqtt = new Mqtt();
maxTemperature.ifPresent(t -> mqtt.setTemperature(t.getTemperature()));
maxMethane.ifPresent(t -> mqtt.setHumidity(t.getHumidity()));
maxHumidity.ifPresent(t -> mqtt.setMethane(t.getMethane()));
你期待的結果是什么?
百度了一些 這篇Java 8 Stream簡介和復用問題后面提到的StreamSupport.stream能實現stream復用,但是我看不懂。我希望能一次stream得出結果,不知道可不可以
總結
以上是生活随笔為你收集整理的java集合多个最大值_Java 8 Stream 求集合元素每个属性的最大值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: react 访问后端_react前端用n
- 下一篇: STM32H743+CubeMX-ADC