文档详情

第14章 lambda表达式与流处理.pptx

发布:2025-03-03约3.9千字共33页下载文档
文本预览下载声明

lambda表达式

lambda表达式λ匿名的结构

函数式接口Aa=()-{System.out.println(创建了接口的匿名对象);};使用lambda表达式创建Aa=newA(){publicvoidaction(){System.out.println(创建了接口的匿名对象);}};使用匿名类创建对象interfaceA{voidaction();}函数式接口接口里只有一个抽象方法

lambda表达式()-结果表达式参数-结果表达式(参数1,参数2,…,参数n)-结果表达式()-{代码块}这个方法按照这样的代码来实现

lambda表达式的参数method();method(inte);method(inte1,doublee2);()-{}e-{}(e)-{}(e1,e2)-{}

lambda表达式的返回值voidmethod();intmethod();()-{}()-{return123;};

方法的引用

方法的引用静态方法非静态成员方法构造方法什么意思?函数式接口哪些方法可以被引用?无实现方法的类有实现方法的类lambda表达式直接引用该类方法implements

引用静态方法接口名对象=实现类类名::静态方法名

非静态成员方法接口名对象=实现类对象::方法名

引用构造方法接口名对象=实现类类名::new

引用带泛型的方法(了解)接口名对象=实现类对象::T方法名接口名对象=实现类类名::T静态方法名

Fuction接口

Fuction接口FunctionT,Rdemo=(t)-{returnr;};创建方式Rr=demo.apply(t);

Fuction接口的方法方法名功能说明apply(Tt)抽象方法。按照被子类实现的逻辑,执行函数。参数为被操作泛型对象compose(Function?superV,?extendsTbefore)先按照before函数逻辑操作接口的被操作对象t,再讲执行结果作为apply()方法的参数andThen(Function?superR,?extendsVafter)先执行apply(t)方法,将执行结果作为本方法参数,再按照after函数逻辑继续执行staticidentity()此方法是静态方法。返回一个Function对象,此对象的apply()方法只会返回参数值。

流处理

数据数据数据数据数据数据数据数据数据数据java.util.stream突出lambda表达式的优势“数据库的SQL语句”数据数据数据数据数据数据数据数据数据stream什么是流处理?IO流?

流处理的主要接口和类Optional类Collectors类Stream接口流处理的核心接口对象容器,优化了空指针场景收集器类,可以对Stream对象进行封装、归集、分组等处理

方法名返回值功能描述类型count()long返回流中元素个数终端操作distinct()StreamT去除流中的重复元素中间操作filter(Predicate?superTpredicate)StreamT返回一个满足指定条件的流中间操作forEach(Consumer?superTaction)void遍历流中的每一个元素,执行执行的action动作终端操作limit(longmaxSize)StreamT获取流中前maxSize个元素中间操作map(Function?superT,?extendsRmapper)RStreamR对流中的元素调用mapper方法,产生包含这些元素的一个新的流中间操作mapToDouble(ToDoubleFunction?superTmapper)DoubleStream 对流中的元素调用mapper方法,产生包含这些元素的一个新的DoubleStream流中间操作mapToInt(ToIntFunction?superTmapper)IntStream对流中的元素调用mapper方法,产生包含这些元素的一个新的IntStream流中间操作mapToLong(ToLongFunction?superTmapper)LongStream对流中的元素调用mapper方法,产生包含这些元素的一个新的LongStream流中间操作max(Comparator?superTcomparator)O

显示全部
相似文档