常用的函数式接口_Predicate接口练习_集合信息筛选
练习:集合信息筛选
题目
数组当中有多条“姓名+性别”的信息如下,请通过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接口练习_集合信息筛选相关推荐
- 常用的函数式接口_Predicate接口_默认方法ornegate
默认方法:or 与and 的"与"类似,默认方法or 实现逻辑关系中的"或".JDK源码为: default Predicate<T> or(Pre ...
- 常用的函数式接口_Predicate接口_默认方法and
默认方法:and 既然是条件判断,就会存在与.或.非三种常见的逻辑关系.其中将两个Predicate 条件使用"与"逻辑连接起来实现"并且"的效果时,可以使用d ...
- 常用的函数式接口_Predicate接口
Predicate接口 有时候我们需要对某种类型的数据进行判断,从而得到一个boolean值结果.这时可以使用java.util.function.Predicate<T> 接口. 抽象方 ...
- java socket接口文档_Java进阶 - 网络编程、Socket、函数式接口、常用的函数式接口...
1.网络通信协议 网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信.这就好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据的传输格式.传输速率.传输步骤 ...
- Java函数式接口--抽象方法接口
1 函数式接口 函数式接口在Java中是指: 有且仅有一个抽象方法的接口 函数式接口, 即适用于函数式编程场景的接口; 而Java中函数式编程体现就是Lambda, 所以函数式接口就是可以适用于Lam ...
- 常用的函数式接口_Supplier接口
常用函数式接口 JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在java.util.function 包中被提供. 下面是最简单的几个接口及使用示例. Supplier接口 ...
- java中函数是什么_[一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念...
本文是针对于java8引入函数式编程概念以及stream流相关的一些简单介绍 什么是函数式编程? java程序员第一反应可能会理解成类的成员方法一类的东西 此处并不是这个含义,更接近是数学上的函数 看 ...
- 常用Lambda函数式接口
常用Lambda函数式接口 1-概述 有且只有一个抽象方法,为Lambda准备的接口 都是由@FunctionalInterface进行的注解 2-函数式接口作为方法的参数 创建线程,用的最多且经典的 ...
- java 扩展接口_详解常用的Spring Bean扩展接口
前言 Spring是一款非常强大的框架,可以说是几乎所有的企业级Java项目使用了Spring,而Bean又是Spring框架的核心. Spring框架运用了非常多的设计模式,从整体上看,它的设计严格 ...
最新文章
- python代码块所属关系的语法-天元高校邦数据科学通识课【Python基础语法】答案...
- python将运行结果用窗口打开-如何打开新控制台并运行python脚本
- matplotlib画图时间长_Python学习第86课-数据可视化之matplotlib介绍
- ubuntu上搭建php,ubuntu10.04上搭建php网站运行环境
- hello nodejs
- maven安装与创建多模块项目【转】
- 程序员的进阶课-架构师之路(18)-图
- webshell文件下载器
- C++面试题:list和vector有什么区别?
- 【POJ2453】An Easy Problem
- 扫地机器人石头爬坡_都这么强了,还要怎么升级:真实评测石头T6扫地机器人...
- nginx负载均衡原理(理解篇)
- 加密日记 android,Lifeograph加密日记应用程序
- java 中常见的文件上传方式_java中如何上传文件
- sql创建和添加时间字段
- paypal/stripe商家工具-轮询支付系统更新
- zabbix监控的快速部署
- js实现汉字转拼音(解决首字母排序问题)
- 数据治理系列8:数据价值管理
- STM32F103与电脑端通信(使用NRF24L01)