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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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


王博

1、我们目前为止,学了几个函数式接口,都有什么用?

Runnable: 创建线程
Comparator: 外部比较器
FileFilter: 文件过滤器
Supplier: 生产型
Consumer: 消费型
Predicate: 按条件筛选
Function: 根据一个类型得到另一个类型

2、获取流有几种方式?

Collection 集合: 通过集合对象名调用 stream(); 方法
Map 集合: 通过获取键集或者值集,再来调用 stream();方法
数组: 通过Stream.of(数组对象);

3、结合最近所学,请谈谈你对函数式接口以及Stream流的理解
Lambda函数式接口更强调做什么,省去了不必要的一些创建对象的操作,对匿名内部内的优化
Stream用于解决已有集合类库既有的弊端,是对遍历集合,对Lambda的优化

回复 使用道具 举报
彭东亮
1、我们目前为止,学了几个函数式接口,都有什么用?
(1)Supplier接口:用来获取一个泛型参数指定类型的对象数据;
(2)Consumer接口:是用来“消费”一个数据,其数据类型由泛型参数决定;
(3)Predicate接口:对数据进行判断;
(4)Function接口:进行数据类型的转换。
2、获取流有几种方式?
总共有三种获取流的方式,分别为:
(1)可以通过Stream默认方法获取单列集合,双列集合的流;
(2)通过Stream 接口的静态方法 of 可以获取数组对应的流。
3、结合最近所学,请谈谈你对函数式接口以及Stream流的理解
函数式接口具有延迟性,节约了资源,解决了代码臃肿的问题;
使用Stream流时通过引用函数式接口,就能有效的到达我们所想要的结果,有效节约资源
回复 使用道具 举报
1.Supplier接口其中Tget()方法无参返回一个跟泛型相同的数据类型数据。Consumer接口其中accept(T t)无返回值从而消费了一个数据类型的数据。Predicate接口抽象方法test(T t)返回一个布尔值用于对某种类型的数据进行判断。Function接口抽象方法R apply(T t)可以返回一个相同或者不同的数据类型。

2.所有的Collection集合可以通过调用stream获取流。Map接口通过map集合对象调用keySet,values,entrySet在相应调用stream获取流。数组通过调用of方法。

3.函数接口主要为了Lambda表达式服务,使我们的代码更简洁可以等到同样的结果,使函数编程应用更广泛。Stream流主要是解决集合类库的弊端。
回复 使用道具 举报
1、我们目前为止,学了几个函数式接口,都有什么用?Runnable:多线程使用的
Comparble,对象做比较用的
Filter用来过滤文件用的
Supplier:产生一个对象
Consumer:消费一个对象
Predicate:判断一个条件
Function:转换数据类型

2、获取流有几种方式?
三种:1、根据Collections获取流
2、根据Map获取流
3、根据数组方式获取流

3、结合最近所学,请谈谈你对函数式接口以及Stream流的理解
Stream流是基于函数式接口之上的一种新的编程思想,它不在像传统编程思想一样要怎么做一件事情,而更注重的是做什么。初衷是为了能让程序员以最简洁的代码完成更复杂的
任务,Stream流它好比一条正在生产的流水线,我们可以对流水线上的产品进行筛选处理得到我们最终想要的结果。所有的Stream流都必须是函数式接口
回复 使用道具 举报
1、我们目前为止,学了几个函数式接口,都有什么用?
        Runnable:创建线程任务 run()       
        Comparator<T>:排序        compare(T o1,T o2) 将数据按照指定顺序排列
        FileFilter:文件过滤器,accept(File f)   过滤出想要的文件
        supplier<T>:生产者        T get();生产(创建)一个对象
        consumer<T>:消费者        accept(T t);消费(操作)一个对象
        Function<T,R>:数据转换        R apply(T t)        转换传入的数据类型(值)
        Predicate:数据判断        boolean test(T t)        判断传入的数据
       


2、获取流有几种方式?
        单列集合获取:
        Collection.Stream();
       
        双列集合获取:
        Map.entry.Stream()
        Map.keySet().stream()
        Map.value().stream()
       
        数组获取方式:调用默认方法
        Stream.of(T...t);
       
3、结合最近所学,请谈谈你对函数式接口以及Stream流的理解
        函数式接口,有且只有一个抽象方法的接口,在1.8的特性上通过Lambda的引入与方法引用的配合优化了匿名内部类需要创建各种对象而导致的臃肿的代码,基于Lambda的使用上具有延迟性,强调做什么,而不是怎么做,由面向对象转向了面向函数;

        Stream,将其比作管道,数据的流动就在其中进行,而它的方法功能好比自来水净水厂,对管道中的数据进行加工操作,通过一步步的筛选,
        最终得到想要的结果.通过极少的步骤便可对巨量的数据进行筛选,且具有延迟性,极大地提高了开发效率,美中不足的是,每个Stream流只能消费(操作)一次,且在其中流动的数据
        流向单一不可逆,并且如果未编写终止方法,那么中间的操作步骤将无法得到实现.
回复 使用道具 举报
1、我们目前为止,学了几个函数式接口,都有什么用?
Supplier 生产者
Consumer 消费一个指定泛型数据
Predicate,判断,返回布尔
Function,一个数据类型转换为另一种类型
2、获取流有几种方式?
集合获取 单列list.stream()
双列map.KeySet.stream() map.values.stream() map.entrySet
数组获取 stream.of(arr)
3、结合最近所学,请谈谈你对函数式接口以及Stream流的理解
函数式接口 其实就是在说 见到了 这样的接口应用 比如用在返回值上比如用在参数列表上,实际上就是在说  这里要实现的功能是什么,而我们知道Lambda就是用来实现 具体代码
Stream流 不是集合元素 JDK8中的一个新特性 被我们称为 流 也不是数据结构 不保存数据 它是有关算法和计算操作的 更像高级别版本的迭代器Stream 单向 不可往复  数据只能遍历一次 就好比流水 从前面流过了 一去不复返
回复 使用道具 举报
刘慧梅
1、我们目前为止,学了几个函数式接口,都有什么用?
Supplier,生产数据
Consumer,消费数据
Predicate,数据判断
Function,转换类型
2、获取流有几种方式?
根据Collection获取流
根据Map获取流  
根据数组获取流
3、结合最近所学,请谈谈你对函数式接口以及Stream流的理解
函数式接口是有且仅有一个抽象方法的接口
Stream流以Lambda的基础,解决集合的弊端

回复 使用道具 举报
1、我们目前为止,学了几个函数式接口,都有什么用?

Supplier对外提供”一个符合泛型类型的对象数据。
Consumer是消费一个数据,其数据类型由泛型参数决定
Predicate 返回一个布尔值
Function一个类型的数据得到另一个类型的数据

2、获取流有几种方式?

集合:对象的stream( )方法;
通过Stream.of( )静态方法获取;


3、结合最近所学,请谈谈你对函数式接口以及Stream流的理解

函数式接口只有一个抽象方法,具有延迟加载机制;
Stream 是一个函数模型,就像生产流水线一样,实现不同的功能
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马