A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2018-7-8 21:29  /  2875 人查看  /  31 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、我们目前为止,学了几个函数式接口,都有什么用?
Runnable:多线程任务
Comparator:比较
FileFilter:文件过滤器

Supplier:生产数据
Consumer:消费数据
Predicate:判断数据
Function:转换数据

另外,并未深入学习但是有用到的接口
Collector(收集流的结果到集合时候使用了及格已经定义好的该接口的实现类(Collectors.toList和toSet)
IntFunction(在把流的结果收集到数组中时以引用数组的构造方法的形式使用)

2、获取流有几种方式?
从单列Collection获取流:直接调用stream();方法
从双列集合Map获取流:两种思路
1)keySet()方法获取键集合,然后对键集使用stream()方法;
2)entrySet()方法获取键值对集合,然后对键值对集使用stream()方法;

3、结合最近所学,请谈谈你对函数式接口以及Stream流的理解
函数式接口,和Stream流,以及之前学过的Lambda表达式,作为函数式编程在Java语言中的体现,让开发者将更多的精力用在“做什么”上,而不是因为面向对象冗长的语法结构而把问题转移到仅仅是作为固定格式“怎么左”上。
流通过使用大量的函数式接口并配合Lambda表达式(关于流的操作不能使用匿名内部类,必须使用Lambda表达式),以类似于“流水线作业”的形式使得对于集合、数组等的操作从语法上更加简单直观,侧重于目的,大幅度提高了开发效率。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马