Predicate接口和Consumer接口
Predicate和Consumer接口是集合操作中常用到的俩个接口:
1、Predicate
public interface Predicate<T>{
boolean test(T t);//进行某些逻辑判断并返回一个boolean值
}
2、Consumer
public interface Consumer<T>{
void accept(T t);//对于给定的对象进行操作
}
3、结合实例
- predicate
Predicate<Integer> pre = x -> x >= 5;
System.out.println(pre.test(9));//输出结果为true
- consumer
import java.util.Collection;
import java.util.HashSet;
import java.util.function.Predicate;
import java.util.function.Consumer; public class PreCon {
public static void main(String []args){
Collection<String> c=new HashSet<String>();
c.add("!");
c.add("java");
c.add("hao");
c.add("ni");
c.add("zhe");
System.out.println(findSet(c,obj->System.out.println(obj),obj->((String)obj).length()<3)); //使用Lambda表达式(目标类型是Predicate)过滤集合
c.removeIf(ele -> ((String)ele).length() < 10);
System.out.println(c);
} public static int findSet(Collection collection, Consumer consumer,
Predicate predicate) {
int n = 0;
for (Object obj : collection) {
if (predicate.test(obj)) {
n++;
consumer.accept(obj);
}
}
return n;
}
}
Predicate接口和Consumer接口的更多相关文章
- Spring8中lambda表达式的学习(Function接口、BiFunction接口、Consumer接口)
代码重构,为了确保功能的等效性,梳理代码时,发现如下代码: public SingleRespTTO fundI(SingleReqTTO request) throws Exception { re ...
- Java 8 : Predicate和Consumer接口
1.consumer jdk 1.8 的 Iterable 接口中的 forEach 默认方法: public interface Iterable<T> { default void f ...
- Predicate和Consumer接口的使用
// Predicate 判断是否拥有资格,Consumer 改变输入的值 案例 public static MyTest2 getV(MyTest2 a, Predicate<MyTe ...
- Kafka Consumer接口
对于kafka的consumer接口,提供两种版本, high-level 一种high-level版本,比较简单不用关心offset, 会自动的读zookeeper中该Consumer grou ...
- Java常用函数式接口--Consumer接口andThen()方法使用案例(二)
Java常用函数式接口--Consumer接口使用案例
- 常用的函数式接口Consumer接口练习字符串拼接输出
题目 下面的字符串数组当中有多条信息,请按照格式"姓名: XX 性别: XX"的格式将信息打印出来,要求将 打印姓名的动作为第一个Consumer接口的Lambda实例,将打印性别 ...
- Callable接口、Runable接口、Future接口
1. Callable与Runable区别 Java从发布的第一个版本开始就可以很方便地编写多线程的应用程序,并在设计中引入异步处理.Thread类.Runnable接口和Java内存管理模型使得多线 ...
- 源码阅读—Iterator接口和LIstIterator接口
在继续看ArrayList源码之前,先了解Iterator接口和ListIterator接口,下篇文章详细讲解ArrayList是如何实现它们的. 我们知道,接口只是一种规范,当继承接口并实现其中的方 ...
- Java8函数式接口/Lambda表达式/接口默认方法/接口静态方法/接口冲突方法重写/lambda表达式指定泛型类型等
一:函数式接口 1.函数式接口的概念就是此接口必须有且只能有一个抽象方法,可以通过@FunctionalInterface来显示规定(类似@Override),但是没有此注解的但是只有一个抽象方法的接 ...
随机推荐
- [SQL入门级] 第一天 SQL初步
SQL语句分为以下三种类型: DML:Data Manipulation Language 数据操纵语言 INSERT UPDATE DELETE SELECT DDL:Data Definition ...
- BUG等级和严重等级关系
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...
- 日文xp系统中 日文键盘模式转英式键盘模式
键盘设备驱动早在Windows XP安装时就已经安装好了,但是系统却将日式键盘误识成了美式标准键盘,这会出现一些标点符号的实际输入与键盘标注不符的问题,对于用惯了英文键盘的人可 以盲打而不去理会,但对 ...
- MD5 Checksums for R12.1.1 Rapid Install Media (文档 ID 802195.1)
Oracle EBusiness Suite R12.1.x Rapid Installmd5 Checksums November 2011 Section 1: Overview Sec ...
- 关于onethink的迁移站点产生数据库错误
为了支持国产,本人使用了onethink建立了一个自己的站点( 模板世界:www.templatesy.com ),使用至今,虽然碰到了重重困难,还有很多bug,但总算也勉强建了起来. 在近期的一 ...
- quick-cocos2d-x 实现在lua里面完成android支付宝的接入
quick-cocos2d-x 实现在lua里面完成android支付宝的接入 一.支付宝注册是很麻烦的一个过程,本文就不解释了,想了解的去官网看下注册流程.然后下载他们的sdk-WS_SECURE_ ...
- 《编写可维护的JavaScript》——JavaScript编码规范(一)
缩进层级 代码如何缩进通常有两种主张: 使用制表符缩进 每一个缩进层级都用单独的制表符表示.这种方法的主要缺点是:系统对制表符的解释不一致.这些差异会导致不同的开发者对同一段代码有不同的看法的,这正是 ...
- 基于Session的国际化实现
如何将我们网站的其它内容(如菜单.标题等)做国际化处理呢?这就是本篇要将的内容—>国际化. 在项目的spring.xml文件添加的内容如下 <mvc:interceptors> &l ...
- ubuntu常见问题及解决
1.反复关机后自动重启. 联网状态下输入以下命令. sudo apt-get install laptop-mode-tools 2.win和ubuntu双系统下,怎么修改启动顺序和等待时间? 1.开 ...