文档章节

2.2行为参数概念------List抽象化,Lambda表达式的使用

R
 Refresh-LV
发布于 2017/07/07 16:09
字数 303
阅读 3
收藏 0

个人漏见--->

                    a.行为参数能够很好的实现抽象方法的在实际情况中赋值,让抽象方法能够满足一个大的场景的各种不同要求下的目的实现。

                    b.行为参数中List抽象化,能够更好的让这个抽象方法不久在一个大场景中能适用,更能切换场景应用,List抽象化,能够让抽象方法的使用适用的场景呈几何倍数增长。

public class FilterIngT {
    public static void main(String[] args) {
        List<Apple> apples = Arrays.asList(new Apple("red", 150),
                                            new Apple("blue",199), 
                                            new Apple("red", 188));
        List<Apple> list = filterT(apples, (Apple apple) -> "red".equals(apple.getColor()) );
        List<Integer> numbers = Arrays.asList(new Integer(155),
                                                new Integer(156),
                                                new Integer(157));
        List<Integer> eventNumbers = filterT(numbers, (Integer number) -> number == 156);
        System.out.println(list.toString());
        System.out.println(eventNumbers.toString());
    }
    
    public static <T>List<T> filterT(List<T> list, Predicate<T> p) {
        List<T> result = new ArrayList<>();
        for (T t : list) {
            if (p.test(t)) {
                result.add(t);
            }
        }
        return result;
    }
}

--------------------------Predicate-------------------------------------------

public interface Predicate<T> {
    public boolean test(T t);
}
个人漏见:Lambda表达式是将接口的实现抽出来,括号里内容是抽象方法的入参,执行块是抽象方法重写的执行块。有什么有误区的地方,请各位道友指正。

© 著作权归作者所有

R
粉丝 1
博文 23
码字总数 7973
作品 0
仙桃
私信 提问
java8之Lambda知识回顾

前提 18年第一篇文章,祝各位新年快乐哈~ 介绍Lambda之前,可以看下我们定义View点击事件的一般做法 这种回调模式在日常开发中很常见,但是随之也暴露了一些不良的弊端 1、非抽象化,整个代码...

DevSiven
2018/01/05
0
0
行为参数化与lambda表达式 - 读《Java 8实战》

零、 概述 第一部分:1~3章 主要讲了行为参数化和Lambda表达式 第二部分:4~7章 主要讲了流的应用,包括流与集合差异,流的操作,收集器,注的并行执行 第三部分:8~12章 主要讲了怎样用Jav...

yysue
2018/08/12
72
0
Java 8th 新特性:lambda表达式

Java 8th 新特性系列 Java 8th 新特性(一):lambda表达式 Java 8th 新特性(二):Optional类 Java 8th 新特性(三):流式数据处理 Java 8th 新特性(四):默认接口方法 待定 lambda 表达...

zhenchao
2016/09/17
2.9K
7
第二章 通过行为参数化传递代码

行为参数化就是可以帮助你处理频繁变更的需求的一种软件开发模式。一言以弊之,它意味着拿出一个代码块,把它准备好却不去执行它。这个代码块以后可以被你的程序的其他部分调用,这意味着你可...

一个yuanbeth
2018/09/25
6
0
Java8实战 — 使用Lambda参数化代码

本章的目的是初步理解Lambda表达式能做什么。 编写能够应对需求变化的代码不容易,通过一个简单例子,并逐步改进这个例子,以展示一些让代码更灵活的最佳做法。就一个农场仓库而言,你必须实...

杰克鹏仔
2016/12/23
31
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
11
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部