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

Predicate练习

有个数组,将数组中满足两个条件的数组挑选出来

import java.util.ArrayList;
import java.util.function.Predicate;

public class Demo01Test {
    //定义一个方法,传递字符串参数和两个Predicate接口
    public static ArrayList<String> filter (String[] arr,
                                          Predicate<String> pre1,
                                          Predicate<String> pre2){
        // 定义一个集合,存储过滤之后的信息
        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[] shuZu= {"马儿扎哈,男","古利札那,女","上帝发誓,女","赵丽颖,女"};
        // 使用filter方法,传递字符串数组,两个Lambda表达式
        ArrayList<String> list = filter(shuZu,
                (String str) -> {
                    //获取字符串中的性别,判断是否为女
                    return  str.split(",")[1].equals("女");

                },
                (String str) -> {
                    //获取字符串中的姓名,判断长度是否为4
                    return  str.split(",")[0].length() == 4;
                });
        //遍历集合
        for (String s : list) {
            System.out.println(s);
        }
    }

}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Stream流中的常用方法
  • 网络编程练习
  • Junit简单的白盒测试
  • 关于java中的反射
  • 通过反射写个“框架”
  • Postman中使用的参数
  • 注解(一)
  • 基于注解一个简单的测试框架
  • 数据库(一)
  • 数据库(二)
  • 数据库(三)
  • 数据库(四)
  • 数据库(五)
  • 数据库(六)
  • 数据库(七)
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Docker下部署自己的LNMP工作环境
  • input的行数自动增减
  • Java的Interrupt与线程中断
  • js 实现textarea输入字数提示
  • Laravel 菜鸟晋级之路
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • mongo索引构建
  • Shadow DOM 内部构造及如何构建独立组件
  • sublime配置文件
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 力扣(LeetCode)21
  • 判断客户端类型,Android,iOS,PC
  • 区块链技术特点之去中心化特性
  • 优化 Vue 项目编译文件大小
  • - 转 Ext2.0 form使用实例
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • Mac 上flink的安装与启动
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ‌内网穿透技术‌总结
  • # centos7下FFmpeg环境部署记录
  • ######## golang各章节终篇索引 ########
  • #define 用法
  • #Linux(make工具和makefile文件以及makefile语法)
  • #php的pecl工具#
  • #数据结构 笔记三
  • (LeetCode C++)盛最多水的容器
  • (阿里云万网)-域名注册购买实名流程
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (七)Java对象在Hibernate持久化层的状态
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (新)网络工程师考点串讲与真题详解
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)我也是一只IT小小鸟
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .Net 6.0--通用帮助类--FileHelper
  • .net Stream篇(六)
  • .net 调用海康SDK以及常见的坑解释