Predicate和Consumer接口的使用】的更多相关文章

1.consumer jdk 1.8 的 Iterable 接口中的 forEach 默认方法: public interface Iterable<T> { default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } } } 2. public class PredicateConsumerDemo…
//  Predicate   判断是否拥有资格,Consumer  改变输入的值 案例 public static MyTest2 getV(MyTest2 a, Predicate<MyTest2> pre,Consumer<MyTest2> con){ if(pre.test(a)){ con.accept(a); } return a; } public static void main(String[] args) { MyTest2 a = ,"ce"…
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 jav…
Java8常用的内置函数式接口(一) 简介 JDK 1.8 API中包含了很多内置的函数式接口.有些是在以前版本的Java中大家耳熟能详的,例如Comparator接口,或者Runnable接口.对这些现成的接口进行实现,可以通过@FunctionalInterface 标注来启用Lambda功能支持. 此外,Java 8 API 还提供了很多新的函数式接口,来降低程序员的工作负担. 比如我们今天要了解到的四大常用的内置函数式接口:下表 序号 接口名 接口类型 1 Predicate 断言型接口…
一个需求: 把年龄大于20的学生的信息打印出来. 面向对象编程 public class Student { private String name; private int age; private int number; public Student(String name,int age,int number){ this.name = name; this.age = age; this.number = number; } public String toString(){ retur…
对于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接口使用案例…
题目 下面的字符串数组当中有多条信息,请按照格式"姓名: XX 性别: XX"的格式将信息打印出来,要求将 打印姓名的动作为第一个Consumer接口的Lambda实例,将打印性别的动作作为第二个Consumer接口的 Lambda实例,将两个Consumer接口按照顺序拼接到一起 代码实现: package com.yang.Test.ConsumerStudy; import java.util.function.Consumer; /** * # 题目 * 下面的字符串数组当中有…
1.常用函数是接口: (1)Function<T, R> => R apply(T t) ———— 接受一个T类型的参数,返回R类型结果. Function<Integer, String> function1 = (x) -> "result: " + x; function1.apply(6); (2)Consumer<T> => void accept(T t) ———— 接受一个T类型的参数,无返回. Consumer<…
// public static void main(String[] args) throws InterruptedException { // https://blog.csdn.net/u011848397/article/details/89074794 // String name = ""; // String name1 = "12345"; // // //3.Predicate<T> // String name2 = "1…
函数式接口: 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但可以有多个非抽象方法的接口. 函数式接口可以被隐式转换为 Lambda 表达式. Function 函数 Function 与 BiFunction 输入一个或多个参数,也可以规定返回值类型,并执行一段逻辑 Function<Integer, Integer> function = num -> num + 1; Function<Integer, Integer> funct…
代码重构,为了确保功能的等效性,梳理代码时,发现如下代码: public SingleRespTTO fundI(SingleReqTTO request) throws Exception { return handlerSingleReq((req, logInfo) -> { // 业务操作 ....略.... }, request); } public SingleRespTTO handlerSingleReq(BiConsumer<SingleReqTTO, SingleRespT…
第一种方式: 第二种方式:…
static class UserT { String name; public UserT(String zm) { this.name=zm; } public String getName() { return name; } public void setName(String name) { this.name = name; } } static class Student { String firstName; String lastName; Double grade; Doub…
参考https://blog.csdn.net/z345434645/article/details/53794724 https://blog.csdn.net/chuji2012/article/details/77871011 1.先来看一个简单的Consumer<T>的例子 描述:Consumer< T>接口接受一个T类型参数,没有返回值. 源码如下: public interface Consumer<T> { /** * Performs this oper…
前言: 本人也是学习lambda不久,可能有些地方描写叙述有误,还请大家谅解及指正! lambda表达式具体解释 一.问题 1.什么是lambda表达式? 2.lambda表达式用来干什么的? 3.lambda表达式的优缺点? 4.lambda表达式的使用场景? 5.lambda仅仅是一个语法糖吗? 二.概念 lambda表达式是JAVA8中提供的一种新的特性.它支持JAVA也能进行简单的"函数式编程". 它是一个匿名函数,Lambda表达式基于数学中的λ演算得名.直接相应于当中的la…
原文:http://blog.csdn.net/jinzhencs/article/details/50748202 lambda表达式详解 一.问题 1.什么是lambda表达式? 2.lambda表达式用来干什么的? 3.lambda表达式的优缺点? 4.lambda表达式的使用场景? 5.lambda只是一个语法糖吗? 二.概念 lambda表达式是JAVA8中提供的一种新的特性,它支持Java也能进行简单的“函数式编程”. 它是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接…
参考:https://blog.csdn.net/jmj18756235518/article/details/81490966 函数式接口 定义:有且只有一个抽象方法的接口 Function<T, R>: y = f(x) T: x 输入参数, R: 返回结果,y 所有标注了@FunctionalInterface注解的接口都是函数式接口,所有标注了该注解的接口都将能用在lambda表达式上 特点:通过传入不同的Function,实现了在同一个方法中实现不同的操作,在实际开发中可以大大减少很…
首先看看什么是Lambda 表达式 Lambda是一个匿名函数,我们可以把Lambda表达式理解为一段可以传递的代码(将代码像数据一样传递):最简单的Lambda表达式可由逗号分隔的参数列表.->符号和语句块组成,例如: Arrays.asList( "a", "b", "d" ).forEach( e -> System.out.println( e ) ); 如果 ->后面的语句块有多句就使用 { } 例如: Arrays.…
Function 我们知道Java8的最大特性就是函数式接口.所有标注了@FunctionalInterface注解的接口都是函数式接口,具体来说,所有标注了该注解的接口都将能用在lambda表达式上. 接口介绍 /** * Represents a function that accepts one argument and produces a result. * * <p>This is a <a href="package-summary.html">f…
了解lambda之前先了解下什么是函数式接口,函数式接口即接口里必须有一个抽象方法(抽象的方法只能有一个,可以有其他的用default修饰的方法) jdk8里新增了一个@FunctionalInterface注解,这个注解标注此接口为函数式接口,但是并不是必须的,任何满足我上面所说的只有一个抽象方法的接口都可以称之为函数式接口,但是如果一个接口上标注了此注解,就必须满足上述条件 lambda表达式用来重写函数式接口中的那个抽象方法,有点类似匿名内部类 lambda表达式的语法包括3个部分: 1.…
你的无畏来源于无知.--<三体> 在上一篇文章(传送门)中介绍了Comparator复合,这次我们来介绍一下其他的复合Lambda表达式. Consumer复合 Consumer接口中,有一个默认方法andThen,它的入参还是Consumer接口的实例.做完上一个Consumer的操作以后,再做当前Consumer的操作,就像工厂的流水线一样,比如: Consumer<Mask> brand = m -> m.setBrand("3M"); Consum…
从JDK8开始java支持函数式编程,JDK也提供了几个常用的函数式接口,这篇主要介绍Consumer接口.文本介绍的顺序依次为: 源码介绍 使用实例 jdk内对Consumer的典型使用 扩展类介绍 源码介绍 12345678910111213141516171819202122232425262728 package java.util.function; import java.util.Objects; /** * * 表示“接受一个参数输入且没有任何返回值的操作“.不同于其它的函数式接…
(原) 这个接口主要用于判断,先看看它的实现,说明,再给个例子. /* * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.util.function; import java.util.Objects; /** * Repr…
(原) 在上一篇,用到过这样一个方法: list.forEach(new Consumer<Integer>() { @Override public void accept(Integer t) { System.out.println(t); } }); 这里重点看List的foreach方法; /* * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIE…
这一篇属于菜鸟级博客,只是介绍了一些在Java 8中新出现的一些很有用的接口,通过一些简单的例子加以说明,没有深入地阐述. 函数式接口 什么是函数式接口? 函数式接口,@FunctionalInterface,简称FI,简单的说,FI就是指仅含有一个抽象方法的接口,以@Functionalnterface标注,注意⚠️,这里的抽象方法指的是该接口自己特有的抽象方法,而不包含它从其上级继承过来的抽象方法,例如: @FunctionalInterface Interface FI{ abstract…
前言   Java8中函数接口有很多,大概有几十个吧,具体究竟是多少我也数不清,所以一开始看的时候感觉一脸懵逼,不过其实根本没那么复杂,毕竟不应该也没必要把一个东西设计的很复杂. 几个单词   在学习了解之前,希望大家能记住几个单词,掌握这几个单词,什么3,40个官方的函数接口都是小问题了,不信的话接着往下看啦.ok,那这几个单词呢分别是supplier 提供者,consumer 消费者,function 函数,operation 运算符,binary 二元(就是数学里二元一次方程那个二元,代表…
函数式接口 概述:接口中只有一个抽象方法. 函数式接口,即适用于函数式编程场景的接口.而 Java 中的函数式编程体现就是 Lambda,所以函数式接口就是可以适用于 Lambda 使用的接口.只有确保接口中有且仅有一个抽象方法,Java 中的 Lambda 才能顺利地进行推导. 备注:“语法糖”是指使用更加方便,但是原理不变的代码语法.例如在遍历集合时使用的for-each语法,其实 底层的实现原理仍然是迭代器,这便是“语法糖”.从应用层面来讲,Java中的Lambda可以被当做是匿名内部 类…
背景 java9的一再推迟发布,似乎让我们恍然想起离发布java8已经过去了三年之久,java8应该算的上java语言在历代版本中变化最大的一个版本了,最大的新特性应该算得上是增加了lambda表达式,借助lambda表达式,我们可以编写出性能更好,可读性更强的代码,更重要的,它给我们带来了一种编程思想的改革,作为一个活跃了20多年的编程语言,java能够做到与时俱进,拥抱新变化,实属不易,虽然现在很多公司包括我所在的公司尚未把jdk升级到最新的版本,但关注并学习每一个版本带来的新变化,是每个j…
函数式接口 概述:接口中只有一个抽象方法 下面介绍的可能很抽象,理解不了,至少在我看来单独的这几个借口是没有用的,跟最下面说的 Stream流一起用才会有效果 函数式接口,即适用于函数式编程场景的接口.而Java中的函数式编程体现就是Lambda,所以函数式接口就是可 以适用于Lambda使用的接口.只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导. 备注:"语法糖"是指使用更加方便,但是原理不变的代码语法.例如在遍历集合时使用的for-each语法,其实…