练习:集合信息筛选

题目

数组当中有多条“姓名+性别”的信息如下,请通过Predicate 接口的拼装将符合要求的字符串筛选到集合ArrayList 中,需要同时满足两个条件:

1. 必须为女生;

2. 姓名为4个字。

public class DemoPredicate {public static void main(String[] args) {String[] array = { "迪丽热巴,女", "古力娜扎,女", "马尔扎哈,男", "赵丽颖,女" };}
}

解答

package com.learn.demo06.Predicate;import java.util.ArrayList;
import java.util.function.Predicate;/*练习:集合信息筛选数组当中有多条“姓名+性别”的信息如下,String[] array = { "迪丽热巴,女", "古力娜扎,女", "马尔扎哈,男", "赵丽颖,女" };请通过Predicate接口的拼装将符合要求的字符串筛选到集合ArrayList中,需要同时满足两个条件:1. 必须为女生;2. 姓名为4个字。分析:1.有两个判断条件,所以需要使用两个Predicate接口,对条件进行判断2.必须同时满足两个条件,所以可以使用and方法连接两个判断条件*/
public class Demo05Test {/*定义一个方法方法的参数传递一个包含人员信息的数组传递两个Predicate接口,用于对数组中的信息进行过滤把满足条件的信息存到ArrayList集合中并返回*/public static ArrayList<String> filter(String[] arr,Predicate<String> pre1,Predicate<String> pre2){//定义一个ArrayList集合,存储过滤之后的信息ArrayList<String> list = new ArrayList<>();//遍历数组,获取数组中的每一条信息for (String s : arr) {//使用Predicate接口中的方法test对获取到的字符串进行判断boolean b = pre1.and(pre2).test(s);//对得到的布尔值进行判断if(b){//条件成立,两个条件都满足,把信息存储到ArrayList集合中list.add(s);}}//把集合返回return list;}public static void main(String[] args) {//定义一个储存字符串的数组String[] array = { "迪丽热巴,女", "古力娜扎,女", "马尔扎哈,男", "赵丽颖,女" };//调用filter方法,传递字符串数组和两个Lambda表达式ArrayList<String> list = filter(array,(String s)->{//获取字符串中的性别,判断是否为女return s.split(",")[1].equals("女");},(String s)->{//获取字符串中的姓名,判断长度是否为4个字符return s.split(",")[0].length()==4;});//遍历集合for (String s : list) {System.out.println(s);}}
}

常用的函数式接口_Predicate接口练习_集合信息筛选相关推荐

  1. 常用的函数式接口_Predicate接口_默认方法ornegate

    默认方法:or 与and 的"与"类似,默认方法or 实现逻辑关系中的"或".JDK源码为: default Predicate<T> or(Pre ...

  2. 常用的函数式接口_Predicate接口_默认方法and

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

  3. 常用的函数式接口_Predicate接口

    Predicate接口 有时候我们需要对某种类型的数据进行判断,从而得到一个boolean值结果.这时可以使用java.util.function.Predicate<T> 接口. 抽象方 ...

  4. java socket接口文档_Java进阶 - 网络编程、Socket、函数式接口、常用的函数式接口...

    1.网络通信协议 网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信.这就好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据的传输格式.传输速率.传输步骤 ...

  5. Java函数式接口--抽象方法接口

    1 函数式接口 函数式接口在Java中是指: 有且仅有一个抽象方法的接口 函数式接口, 即适用于函数式编程场景的接口; 而Java中函数式编程体现就是Lambda, 所以函数式接口就是可以适用于Lam ...

  6. 常用的函数式接口_Supplier接口

    常用函数式接口 JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在java.util.function 包中被提供. 下面是最简单的几个接口及使用示例. Supplier接口 ...

  7. java中函数是什么_[一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念...

    本文是针对于java8引入函数式编程概念以及stream流相关的一些简单介绍 什么是函数式编程? java程序员第一反应可能会理解成类的成员方法一类的东西 此处并不是这个含义,更接近是数学上的函数 看 ...

  8. 常用Lambda函数式接口

    常用Lambda函数式接口 1-概述 有且只有一个抽象方法,为Lambda准备的接口 都是由@FunctionalInterface进行的注解 2-函数式接口作为方法的参数 创建线程,用的最多且经典的 ...

  9. java 扩展接口_详解常用的Spring Bean扩展接口

    前言 Spring是一款非常强大的框架,可以说是几乎所有的企业级Java项目使用了Spring,而Bean又是Spring框架的核心. Spring框架运用了非常多的设计模式,从整体上看,它的设计严格 ...

最新文章

  1. python代码块所属关系的语法-天元高校邦数据科学通识课【Python基础语法】答案...
  2. python将运行结果用窗口打开-如何打开新控制台并运行python脚本
  3. matplotlib画图时间长_Python学习第86课-数据可视化之matplotlib介绍
  4. ubuntu上搭建php,ubuntu10.04上搭建php网站运行环境
  5. hello nodejs
  6. maven安装与创建多模块项目【转】
  7. 程序员的进阶课-架构师之路(18)-图
  8. webshell文件下载器
  9. C++面试题:list和vector有什么区别?
  10. 【POJ2453】An Easy Problem
  11. 扫地机器人石头爬坡_都这么强了,还要怎么升级:真实评测石头T6扫地机器人...
  12. nginx负载均衡原理(理解篇)
  13. 加密日记 android,Lifeograph加密日记应用程序
  14. java 中常见的文件上传方式_java中如何上传文件
  15. sql创建和添加时间字段
  16. paypal/stripe商家工具-轮询支付系统更新
  17. zabbix监控的快速部署
  18. js实现汉字转拼音(解决首字母排序问题)
  19. 数据治理系列8:数据价值管理
  20. STM32F103与电脑端通信(使用NRF24L01)

热门文章

  1. 网络对抗作业——程瑀
  2. 在谈PHP中的 抽象类(abstract class)和 接口(interface)
  3. 教程 打造OS X Mavericks原版 EFI Clover 引导安装
  4. U-Mail邮件系统客户无需担心OpenSSL心脏出血漏洞
  5. 【Spring学习】Spring JdbcTemplate之五类方法总结
  6. 榴莲还有奶油、花生味 印尼出新品售价近7000人民币
  7. mysql三:表操作
  8. HelloWorld实例(springmvc版)
  9. mysql 用户已设置密码,但登录可以不填密码
  10. MySql中添加用户/删除用户