Java8通过管道流(stream)来实现集合的一些聚合函数

stream的一些聚合函数包括:
count(), findFirst(), max(), min(), reduce(), sum()

SimpleStreamDemo.java

package corejava8.functional;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class SimpleStreamDemo {

static class Hero {
String name;
int age;

public Hero(String name, int age) {
this.name = name;
this.age = age;
}
}

static Hero[] heroes = {
new Hero("Grelber", 21), new Hero("Roderick", 12),
new Hero("Francisco", 35), new Hero("Superman", 65),
new Hero("Jumbletron", 22), new Hero("Mavericks", 1),
new Hero("Palladin", 50), new Hero("Athena", 50) };

public static void main(String[] args) {

long adultYearsExperience = Arrays.stream(heroes).filter(b -> b.age >= 18)
.mapToInt(b -> b.age).sum();
System.out.println("We're in good hands! The adult superheros have "
+ adultYearsExperience + " years of experience");

List<Object> sorted = Arrays.stream(heroes)
.sorted((h1, h2) -> h1.name.compareTo(h2.name)).map(h -> h.name)
.collect(Collectors.toList());
System.out.println("Heroes by name: " + sorted);
}
}

运行结果:
We're in good hands! The adult superheros have 243 years of experience
Heroes by name: [Athena, Francisco, Grelber, Jumbletron, Mavericks, Palladin, Roderick, Superman]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值