java使用Predicate接口中的test对数据进行判断

简介: java使用Predicate接口中的test对数据进行判断

一、判断字符串长度是否大于8

import java.util.function.Predicate;
 
public class demo_predict {
    public static void main(String[] args) {
        String s1 = "abcdefg";
        System.out.println(test_length((String str) ->str.length() >= 8, s1));
    }
 
    private static boolean test_length(Predicate<String> pre, String str) {
        return pre.test(str);
    }
}
false

二、判断字符串长度是否大于5且是否包含特定字母

return pre1.test(str) && pre2.test(str);等价于return pre1.and(pre2).test(str);
import java.util.function.Predicate;
 
public class test_pre_str {
    public static void main(String[] args) {
        String str = "abcedf";
        boolean bo = methed(s -> {
            return s.length() > 5;
        }, s -> {
            return s.contains("a");
        }, str);
        System.out.println(bo);
    }
 
    private static boolean methed(Predicate<String> pre1, Predicate<String> pre2, String str) {
       // return pre1.test(str) && pre2.test(str);
        return pre1.and(pre2).test(str);
    }
}
true

三、判断一个字符串名单,输出姓名长度为4且性别为女

import java.util.ArrayList;
import java.util.function.Predicate;
 
public class demp_predict {
    public static void main(String[] args) {
        String[] str_name={"古力娜则 女","欧阳西蒙 男","卧龙轩 女","哈大大奖 女","ccdd 女"};
        ArrayList<String> al = test_arrlist((str) -> {
            return str.split(" ")[0].length() >= 4;
        }, (str) -> {
            return str.split(" ")[1].equals("女");
        }, str_name);
        System.out.println(al.toString());
    }
 
    private static ArrayList<String> test_arrlist(Predicate<String> pre1,Predicate<String> pre2,String[] arr) {
        ArrayList<String> list = new ArrayList<>();
        for (String s : arr) {
            if(pre1.and(pre2).test(s)){
                list.add(s);
            }
        }
        return list;
    }
}
[古力娜则 女, 哈大大奖 女, ccdd 女]
相关文章
|
10天前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
10天前
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
|
10天前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
26 2
|
10天前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
20 2
|
11天前
|
Java
java线程接口
Thread的构造方法创建对象的时候传入了Runnable接口的对象 ,Runnable接口对象重写run方法相当于指定线程任务,创建线程的时候绑定了该线程对象要干的任务。 Runnable的对象称之为:线程任务对象 不是线程对象 必须要交给Thread线程对象。 通过Thread的构造方法, 就可以把任务对象Runnable,绑定到Thread对象中, 将来执行start方法,就会自动执行Runable实现类对象中的run里面的内容。
26 1
|
16天前
|
Java 开发者
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
44 4
|
15天前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
37 2
|
22天前
|
安全 Java
在 Java 中使用实现 Runnable 接口的方式创建线程
【10月更文挑战第22天】通过以上内容的介绍,相信你已经对在 Java 中如何使用实现 Runnable 接口的方式创建线程有了更深入的了解。在实际应用中,需要根据具体的需求和场景,合理选择线程创建方式,并注意线程安全、同步、通信等相关问题,以确保程序的正确性和稳定性。
|
20天前
|
SQL Java OLAP
java实现“数据平滑升级”
java实现“数据平滑升级”
37 2
|
21天前
|
Java
Java基础(13)抽象类、接口
本文介绍了Java面向对象编程中的抽象类和接口两个核心概念。抽象类不能被实例化,通常用于定义子类的通用方法和属性;接口则是完全抽象的类,允许声明一组方法但不实现它们。文章通过代码示例详细解析了抽象类和接口的定义及实现,并讨论了它们的区别和使用场景。