Java 8求最大值、最小值、平均值、求和
方式很多,列举几种,可以以此类推。
1、基础应用(列举两种方式,其他可以类推)
//第一种求最大值:
Optional<Double> reduce = Arrays.asList(25.0, 59.0, 60.0).stream().reduce(Double::max);
System.out.println(reduce.get());
//第二种求最大值:
Optional<Double> max = Arrays.asList(25.0, 59.0, 60.0).stream().max(Double::compareTo);
System.out.println(reduce.get());
2、深入应用
List<User> list = new ArrayList<>();
list.add(new User(21L, "张三"));
list.add(new User(25L, "李四"));
list.add(new User(22L, "王五"));
list.add(new User(19L, "赵柳"));
list.add(new User(32L, "王5"));
list.add(new User(29L, "王6"));
list.add(new User(21L, "王7"));
// 平均数
double asDouble = list.stream().mapToLong(User::getAge).average().getAsDouble();
System.out.println("average:" + asDouble);
double avg = list.stream().collect(Collectors.averagingLong(User::getAge));
System.out.println("average:" + avg);
// 最大值
long asLong = list.stream().mapToLong(User::getAge).max().getAsLong();
System.out.println("max:" + asLong);
// 最小值
long asLong1 = list.stream().mapToLong(User::getAge).min().getAsLong();
System.out.println("min:" + asLong1);
// 求和
long sum1 = list.stream().mapToLong(User::getAge).sum();
System.out.println("sum:" + sum1);