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、结合实例

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));
	}
	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;
	}
}

  

 

时间: 2024-10-03 01:58:05

Predicate接口和Consumer接口的相关文章

【转】Predicate和Consumer接口– Java 8中java.util.function包下的接口

原文链接 http://ifeve.com/predicate-and-consumer-interface-in-java-util-function-package-in-java-8/ 原文链接 作者:   Mohamed Sanaulla  译者: 李璟([email protected]) 早先我写了一篇<函数式接口>,探讨了部分Java 8中函数式接口的用法.我也提及了Predicate接口属于java.util.function包, 在这篇文章中,我将展示如何应用Predicat

Consumer接口简单分析

java8中首次出现Consumer接口,用于接收一个输入参数并处理,不返回任何值. Represents an operation that accepts a single input argument and returns no result. Unlike most other functional interfaces, Consumer is expected to operate via side-effects.

Kafka Consumer接口

对于kafka的consumer接口,提供两种版本,   high-level 一种high-level版本,比较简单不用关心offset, 会自动的读zookeeper中该Consumer group的last offset 参考,https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example 不过要注意一些注意事项,对于多个partition和多个consumer 1. 如果consumer比partition

Java常用函数式接口--Consumer接口andThen()方法使用案例(二)

Java常用函数式接口--Consumer接口使用案例 原文地址:https://www.cnblogs.com/niwotaxuexiba/p/10852243.html

Java 常用函数式接口 —— Consumer接口

JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在 java.util.function 包中被提供. 下面是最简单的Consumer接口及使用示例. Consumer接口概述 @FunctionalInterface public interface Consumer<T> { /** * 对给定参数执行消费操作. * * @param t 输入参数 */ void accept(T t); default Consumer<T> andThen(Con

Callable接口、Runable接口、Future接口

1. Callable与Runable区别 Java从发布的第一个版本开始就可以很方便地编写多线程的应用程序,并在设计中引入异步处理.Thread类.Runnable接口和Java内存管理模型使得多线程编程简单直接. 但Thread类和Runnable接口都不允许声明检查型异常,也不能定义返回值.没有返回值这点稍微有点麻烦.不能声明抛出检查型异常则更麻烦一些. public void run()方法契约意味着你必须捕获并处理检查型异常.即使你小心地保存了异常信息(在捕获异常时)以便稍后检查,但也

Java8函数式接口/Lambda表达式/接口默认方法/接口静态方法/接口冲突方法重写/lambda表达式指定泛型类型等

一:函数式接口 1.函数式接口的概念就是此接口必须有且只能有一个抽象方法,可以通过@FunctionalInterface来显示规定(类似@Override),但是没有此注解的但是只有一个抽象方法的接口也是函数式接口:(接口也和类一样有包访问权限,但是内部的方法则默认是public) @FunctionalInterface public interface IFoo{ void print(); }  // 就是一个最简单的函数式接口,但是如果再有个如void print2()抽象方法则这个接

Java Callable接口、Runable接口、Future接口

1. Callable与Runable区别 Java从发布的第一个版本开始就可以很方便地编写多线程的应用程序,并在设计中引入异步处理.Thread类.Runnable接口和Java内存管理模型使得多线程编程简单直接. 但Thread类和Runnable接口都不允许声明检查型异常,也不能定义返回值.没有返回值这点稍微有点麻烦.不能声明抛出检查型异常则更麻烦一些. public void run()方法契约意味着你必须捕获并处理检查型异常.即使你小心地保存了异常信息(在捕获异常时)以便稍后检查,但也

Dubbo 接口 与http 接口、Pegasus接口

原文链接:https://www.cnblogs.com/yuanyuan2017/p/11430152.html 面试的时候会被问到 除了http  https 请求外 有接触了解到其他的接口么? 一,什么是Dubbo 接口 Dubbo 接口是阿里巴巴开源的致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,dubbo框架告别了传统的web service的服务模式,进而改用provider和consumer模式进行服务.为什么是高性能的呢?可以在某个服务器集群中提供单一