package com.yang.Test.PredicateStudy;

import java.util.function.Predicate;

/**
* java.util.function.Predicate<T>接口
* 作用:对某种数据类型的数据进行判断,结果返回一个boolean值
*
* Predicate接口中包含一个抽象方法:
* boolean test(T t):用来对指定数据类型数据进行判断的方法
* 结果:
* 符合条件,返回true
* 不符合条件,返回false
*/
public class PredicateStudy01 {
/**
* 定义一个方法
* 参数传递一个String类型的字符串
* 传递一个Predicate接口,泛型使用String
* 使用Predicate中的方法test对字符串进行判断,并把判断的结果返回
*/
public static boolean checkString(String s, Predicate<String> predicate) {
boolean test = predicate.test(s);
return test;
} public static void main(String[] args) {
//定义一个字符串
String s = "abcdef"; //调用checkString方法对字符串进行校验,参数传递字符串和Lambda表达式
boolean b = checkString(s, str -> {
//对参数传递字符串进行判断,判断字符串的长度是否大于5,,并把判断的结果返回
return str.length() > 5;
});
System.out.println(b);
}
}

常用的函数式借楼_Predicate_默认方法and

package com.yang.Test.PredicateStudy;

import java.util.function.Predicate;

/**
* 逻辑表达式:可以连接多个判断的条件
* &&:与运算符,有false则false
* ||:或运算符,有true则true
* !:非(取反)运算符,非真则假,非假则真
*
* 需求:判断一个字符串,有两个判断条件
* 1.判断字符串的长度是否大于5
* 2.判断字符串中是否包含a
* 两个条件必须同时满足,我们就可以使用&&运算符链接两个条件
*
* Predicate接口中有一个方法and,表示并且关系,也可以用于连续两个判断条件
* default Predicate<T> and(Predicate<? super T> other){
* Objects.requireNonNull(other);
* return (t) -> this.test(t) && other.test(t);
* }
* 方法内部两个判断条件,也是使用&&连接起来的
*/
public class PredicateAndStudy {
/**
* 定义一个方法,方法的参数,传递一个字符串
* 传递两个Predicate接口
* 一个用于判断字符串的长度是否大于5
* 一个用于判断字符串中是否包含a
* 两个条件必须同时满足
*/
public static boolean checkString(String s, Predicate<String> pre1, Predicate<String> pre2) {
//return pre1.test(s) && pre2.test(s);
return pre1.and(pre2).test(s);
} public static void main(String[] args) {
//定义一个字符串
String s = "abcdef";
//调用checkString方法,参数列表传递字符串和两个Predicate接口
boolean b = checkString(s, message -> {
return message.length() > 5;
}, message -> {
return message.contains("a");
});
System.out.println(b); }
}

常用的函数式接口_Predicate接口和常用的函数式借楼_Predicate_默认方法and的更多相关文章

  1. 常用的函数式接口_Prodicate接口_默认方法or&negate和常用的函数式接口_Predicate接口练习_集合信息筛选

    常用的函数式接口_Prodicate接口_默认方法or&negate OR package com.yang.Test.PredicateStudy; import java.util.fun ...

  2. 常用的函数式接口_Predicate接口_默认方法and和Predicate接口练习_集合接口筛选

    默认方法:and 既然是条件判断,就会存在与.或.非三种常见的逻辑关系.其中将两个Preadicate条件使用"与"逻辑连接起来实现"并且"的效果时,可以使用d ...

  3. Java 8 访问接口的默认方法

    Java 8 API提供了很多全新的函数式接口来让工作更加方便,有一些接口是来自Google Guava库里的,即便你对这些很熟悉了,还是有必要看看这些是如何扩展到lambda上使用的. 一.Opti ...

  4. Java 8——接口中个的默认方法和静态方法

    在Java SE 8之前,interface只是事物的抽象,用来定义统一的抽象事物和描述事物的抽象行为和属性. 但是在Java SE 8中,增加了可以在interface中增加默认实现的行为和事物的静 ...

  5. Java中的集合(二)单列集合顶层接口------Collection接口

    Java中的集合(二)单列集合顶层接口------Collection接口 Collection是一个高度封装的集合接口,继承自Iterable接口,它提供了所有集合要实现的默认方法.由于Iterab ...

  6. Java常用函数式接口--Consumer接口andThen()方法使用案例(二)

    Java常用函数式接口--Consumer接口使用案例

  7. Java常用函数式接口--Predicate接口使用案例

    Java常用函数式接口--Predicate接口使用案例 该方法可以使用and来优化: 调用:

  8. 常用的函数式接口Function接口和常用的函数式接口Function接口默认方法andThen

    常用的函数式接口Function接口 package com.yang.Test.FunctionStudy; import java.util.function.Function; /** * ja ...

  9. 常用的函数式接口_Consumer接口和常用的函数式接口_Consumer接口的默认方法andThen

    Consumer接口 java,util.function.Consumer接口则正好与Supplier接口相反,它不是生产一个数据,而是消费一个数据,其数据类型由泛型决定 抽象方法:accept C ...

随机推荐

  1. VMware-workstation 安装步骤

    目录 VMware Workstation简介 软件获取 百度网盘获取 VM激活码: 安装步骤: VMware Workstation简介 VMware Workstation(中文名"威睿 ...

  2. c++ :STL

    基础知识 容器 容器就是一些模板类的集合,不同之处就是容器中封装的是数据结构 1.序列容器 主要有vector向量容器.list列表容器.deque双端队列容器 元素在容器中是无序的 2.排序容器 包 ...

  3. Mqtt入门:在线调试连接阿里云

    近期课设需要做个东西,我想要做个上位机更好的显示. 但是一开始学习一样东西,听没头绪的,不知道从哪里入手,尝试过去B站找视频看,但是感觉视频讲的都是基础的东西,不是说人家up主讲的不好,只是对于入门, ...

  4. 常见排序算法的golang 实现

    五种基础排序算法对比 五种基础排序算法对比 1:冒泡排序 算法描述 比较相邻的元素.如果第一个比第二个大,就交换它们两个: 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素 ...

  5. 103_Power Pivot 透视表中空白标签处理及百分比

    焦棚子的文章目录 请点击下载附件 1.案例来源于不断变化的需求 事实表:销售表 维度表:城市表 销售表和城市建立多对一的关系 如图1: 图1 2.插入透视表 如图2: 图2 3.问题 1.销售表中,城 ...

  6. sklearn数据集的导入及划分

    鸢尾花数据集的导入及查看: ①鸢尾花数据集的导入: from sklearn.datasets import load_iris ②查看鸢尾花数据集: iris=load_iris()print(&q ...

  7. MySQL之事务隔离级别和MVCC

    事务隔离级别 事务并发可能出现的问题 脏写 事务之间对增删改互相影响 脏读 事务之间读取其他未提交事务的数据 不可重复读 一个事务在多次执行一个select读到的数据前后不相同.因为被别的未提交事务修 ...

  8. 小白excel初步使用2022.06.02

    1.添加 对表格数据相加求和:在表示数据的那一列黄色表格下输入=SUM(D1:D5)或者alt+=或者SUMIF(D1:D5,">50")或者SUMIF(D1,D3:D7,1 ...

  9. django框架4

    内容概要 编辑删除功能编写 虚拟环境 django路由层版本区别 视图函数的返回值 JsonResponse对象 form表单上传文件 request其他方法 FBV与CBV(基于函数的视图.基于类的 ...

  10. 【FAQ】运动健康服务REST API接口使用过程中常见问题和解决方法总结

    华为运动健康服务(HUAWEI Health Kit)为三方生态应用提供了REST API接口,通过其接口可访问数据库,为用户提供运动健康类数据服务.在实际的集成过程中,开发者们可能会遇到各种问题,这 ...