list stream 最大和最小值_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得出结果,不知道可不可以