Stream流式计算

Stream流式计算

大数据:存储 + 计算
集合、MySQL 本质就是存储东西的;
计算都应该交给流来操作!

乘着上篇函数式接口的步伐,我们顺势来讲讲Stream流式计算。它与函数式接口有着千丝万缕的关系。

直接看案例吧:

/*** 题目要求:一分钟内完成此题,只能用一行代码实现! * 现在有5个用户!筛选:

  • 1、ID 必须是偶数
  • 2、年龄必须大于23岁
  • 3、用户名转为大写字母 *
  • 4、用户名字母倒着排序
  • 5、只输出一个用户!

定义5个user类

User u1 = new User(1,"a",21);
User u2 = new User(2,"b",22);
User u3 = new User(3,"c",23);
User u4 = new User(4,"d",24);
User u5 = new User(6,"e",25);

然后存储在List中

// 集合就是存储
 List<User> list = Arrays.asList(u1, u2, u3, u4, u5);

接着用list.stream将list变成流

接着就是筛选功能

list.stream() .filter(u->{return u.getId()%2==0;}) 
.filter(u->{return u.getAge()>23;})

我们可以看一下filter的源码

tream<T> filter(Predicate<? super T> predicate);

传入了一个断定型接口,断定型接口返回一个true or false

u->{return u.getId()%2==0;})

而这个就是一个断定型接口

这个有点难理解,u其实代表的就是list中的元素,该断定型接口就是符合该条件的返回true,就可以被筛选出来,记住记好!

.map(u->{return u.getName().toUpperCase();})

这个实现,将名字转为大写

sorted((uu1,uu2)->{return uu2.compareTo(uu1);})

这个实现排序

.limit(1)

这个实现输出一个人

.forEach(System.out::println);

这个执行打印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值