当前位置: 首页 > news >正文

南京机关建设网站网站建设梦幻创意

南京机关建设网站,网站建设梦幻创意,海口企业免费建站,优化设计答案六年级上册为什么介绍Predicate 自从Java8发布以后#xff0c;代码里面就多了很多函数式的接口和代码。在流式的编程中#xff0c;我们经常会用到Predicate和其他函数#xff0c;在一些开源的代码中也会看到别人定义的Predicate方法。但其实你有没有感觉在写代码的经历中#xff0c;…为什么介绍Predicate 自从Java8发布以后代码里面就多了很多函数式的接口和代码。在流式的编程中我们经常会用到Predicate和其他函数在一些开源的代码中也会看到别人定义的Predicate方法。但其实你有没有感觉在写代码的经历中就很少会定义Predicate方法都是用在stream流中更多比如下面这段代码。今天就来学习和分享一下Predicate彻底了解和掌握Predicate的概念以及用法。 作为参考在数学中谓词也通常被理解为布尔值函数“PX{truefalse}”成为X的谓词 // Returns true if number is even; else false. PredicateInteger evenPredicate n - n % 2 0; // Returns true if age is greater than or equals to 18; else false. PredicatePerson canVote p - p.age() 18; //Stream filtering with Predicate ListPerson voters personList.stream().filter(canVote).toList();Predicate函数接口概念 我们先看下Java对Predicate的定义 表示Predicate是一个接受一个泛型参数的布尔函数返回的是true 或 false经常被用于数据的过滤: 比如stream.filter(k - k 0) 示例 场景就是过滤一个list经常会这样写 Testpublic void predicate() {ListPeople peopleList mockPeopleList();peopleList.stream().filter(people - people.getAge() 10).forEach(System.out::println);}其中filter里这个lambda表达是就是个Predicate .filter(people - people.getAge() 10)我们换一种写法如下 Testpublic void predicate() {ListPeople peopleList mockPeopleList();PredicatePeople predicate people - people.getAge() 10;peopleList.stream().filter(predicate).forEach(System.out::println);}这样比较清晰可以看到Predicate的使用方式。 什么时候使用Predicate 其实换种问法就是在日常编程中我们可以在哪里使用这些返回 true 或 false 的函数呢 我们可以使用谓词在对集合中的对象进行条件评估后从集合中筛选对象评估结果可以是 true 或 false。 例如我们可以在以下实际用例中使用谓词 找到特定日期之后出生的所有孩子特定时间范围内订购的披萨年龄大于特定岁数的员工等等…… Predicate用法 1. 简单的Predicate 如前所述谓词会评估表达式并返回布尔值。现在让我们通过一个简单的示例来看一下创建简单谓词的几个示例。 PredicateEmployee isAdult e - e.getAge() 18; PredicateEmployee isMale p - p.getGender().equalsIgnoreCase(M);2. 复杂的Predicate 我们可以通过混合两个或多个谓词来创建一个复杂的谓词。可以使用andornegate等组合 PredicateEmployee isAdultMale isAdult.and(isMale); PredicateEmployee isAdultOrMale isAdult.or(isMale);或者这样 Testpublic void predicate() {ListPeople peopleList mockPeopleList();PredicatePeople ageGrate10 people - people.getAge() 18;PredicatePeople genderMen people - people.getSex().equals(男);PredicatePeople levelLess5 people - people.getLevel() 5;peopleList.stream().filter(ageGrate10.and(genderMen).or(levelLess5)).forEach(System.out::println);}3. 反向谓词 可以使用 negate() 方法创建现有谓词的反向谓词。 PredicateEmployee isMinor isAdult.negate();4. 在Java 8 Stream中使用Predicate Predicate 是一个函数式接口可以在需要谓词的任何地方将其传递到 lambda 表达式中。例如Stream 接口中的 filter() 方法就是这样一种方法。 /*** Returns a stream consisting of the elements of this stream that match the given predicate.*/ StreamT filter(Predicate? super T predicate);示例 PredicateEmployee isMale p - p.getGender().equalsIgnoreCase(M); ListEmployee maleEmployeeList employeeList.stream().filter(isMale).toList();如果我们想使用两个参数来测试一个条件我们也可以使用 BiPredicate 类。 BiPredicateInteger, String isAdultMale (p1, p2) - p1 18 p2.equalsIgnoreCase(M); ListEmployee adultMalesList employeeList.stream().filter(x - isAdultMale.test(x.getAge(), x.getGender())).toList();总结 Predicate 提供了一种定义和使用布尔值条件作为对象的方法从而使代码更加灵活和富有表现力。
http://www.w-s-a.com/news/697072/

相关文章:

  • 泉州市住房和城乡建设局网站淘宝店网站怎么做
  • 企业网站建设费未付款怎样挂账长春网站制作专业
  • 深圳找网站建设邹城市建设局网站
  • 长春火车站停运了吗网站开发概要设计
  • 网站开发表格整体页面居中网站域名详解
  • 漕泾网站建设赢展网站建设
  • 医院网站建设的要求毕业了智慧团建密码忘了
  • 网站怎么建设在哪里接单坪山商城网站建设哪家便宜
  • 中山企业网站优化易语言wordpress发布
  • 宜昌网站推广自己怎么做彩票网站吗
  • 英文网站建设 招标网站建设中服务器搭建方式
  • 直播网站建设需要什么软件有哪些室内设计效果图怎么做
  • 宁波网站建设电话网络推广外包一年多少钱
  • 检索标准的网站怎么制作企业网站
  • 下列关于网站开发中网页发布wordpress 粘帖图片
  • 网站建设遇到的问题及对策宁波网站建设营销推广
  • 各大招聘网站常州百度快速优化
  • 做网站线稿软件有哪些做门户网站需要注册公司吗
  • 建设企业网站模板下载优化方案怎么写
  • 做像淘宝网的网站网站单页面制作
  • 网站建设流程表龙岩网站建设较好的公司
  • 龙岗建站费用手机免费建立网站吗
  • 江门高端网站建设怎样制作wordpress手机主题
  • 淘宝网站如何在邮件里做超链接wordpress图片投票插件
  • 镇平哪家网站做的好招聘网站如何建设
  • 建网站一般多少钱幸福里wordpress怎么可视化构建页面
  • 广东网站建设建站模板主机托管公司
  • 网站开发师是做什么的网站域名在哪里备案
  • 什么是网站国内高速空间国外做3d模型的网站
  • 效果建网站的公凡科网登陆