Java 8 新特性-Stream更优雅的处理集合入门 (2)

小故事:早上刚上班,经理找到大胖说:“大胖啊,咱们下去去聚餐,软件园旁边有好几家不错的餐馆,如巫山烤鱼、海底捞、大鸭梨,你到大众点评调查一下,也问问去过的同事,看看哪家的口碑好。我们有14个人,预定一张大桌子,然后用滴滴约4辆车,每辆车坐3~4人,我们会在11点半出发”。
如果经理是程序员,大胖是计算机,这就是典型的命令式编程。
实际上,现实中一般是经理对大胖说:“大胖啊,我给你交代一件事,咱们下午要聚餐,你在软件园旁边找一家合适的餐馆,我们有14个人,11点半出发”。这种就是声明式编程

1. 声明式编程最知名的就是我们都熟悉的SQL SELECT stu.id, stu.name, ss.score FROM student stu, student_score ss WHERE stu.id = ss.id AND ss.score > 80 2. 用Java也来举个例子

有一个学生列表,计算出年龄小于18岁的学生数量

传统命令式编程

//声明一个计数器,遍历学生集合,如果学生年龄小于18岁,计数器+1 int count = 0; Iterator<Student> iter = students.iterator(); while(iter.hasNext()) { Student s = iter.next(); if (s.getAge < 18) { count++; } }

声明式编程

//过滤学生构成的流(Stream),只把年龄小于18岁的留下,然后做个统计。 int count = students.stream() .filter(s -> s.getAge() < 18) .count();

声明式编程也是一种高度的抽象,我只告诉你我要干什么,至于怎么干,我Don't care

参考资料书-刘欣·码农翻身

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwysys.html