Function, Predicate】的更多相关文章

Function, Predicate的使用 Function用于把一种类型的对象转化为另一种类型的对象.Predicate用于判断某个对象是否符合一定条件. 一.Function和Functions 在java开发中, 我们经常需要对一些对象进行处理, 然后返回我们想要的结果, 比如说:对日期进行格式化, 获取字符串等等.在guava中, 我们可以通过实现Function接口来实现类似的需求, 如下: import com.google.common.base.Function; import…
@Test public void function(){ List<String> list = Lists.newArrayList("1","2","3"); List<Integer> integers = Lists.transform(list,new Function<String, Integer>() { @Override public Integer apply(String arg0)…
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/jmj18756235518/article/details/81490966 函数式接口 定义:有且只有一个抽象方法的接口 Function<T, R>: y = f(x) T: x 输入参数, R: 返回结果,y 所有标注了@FunctionalInterface注解的接口都是函数式接口,所有标注了该注解的接口都将能用在lambda表达式上 特点:通过传入不同的Function,实现了在同一个方法中实现不同的操作,在实际开发中可以大大减少很…
Java8---函数式接口 Consumer---消费者(accept方法,Lambda与方法引用返回都是Consumer) Supplier---供给型(get方法,返回数据,与Optional可以联用) Predicate---谓词性(test方法,起到判断作用,) Function---功能性(apply方法,转换数据) 公司代码中看到过很多次Consumer和Function,一直搞不懂,今天做个整理,分成了匿名类,Lambda和方法引用 1.Consumer消费者 package Ja…
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…
在Java 8中,Predicate是一个函数式接口,可以被应用于lambda表达式和方法引用.其抽象方法非常简单: /** * Evaluates this predicate on the given argument. * * @param t the input argument * @return {@code true} if the input argument matches the predicate, * otherwise {@code false} */ boolean…
(原) 这个接口主要用于判断,先看看它的实现,说明,再给个例子. /* * 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…
code: package com.qhong; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static com.qhong.EmployeePredicates.*; public class Main { public static void main(String[] args) throws Exception { Employee e1 = new Employe…
Binary Predicate(双参判断式)的用途是:比较两个参数的特定属性 我们先建一个领域模型类: Person.h #ifndef _Domain_Models_Person_H_ #define _Domain_Models_Person_H_ #include <iostream> #include <string> #include <deque> using namespace std; class Person { private: string fn…
一点一点看JDK源码(五)java.util.ArrayList 后篇之removeIf与Predicate liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) Predicate为jdk1.8新增接口,由ArrayList.removeIf(Predicatep)调用. 使用起来也比较方便,从ArrayList中移除Predicate 中test方法的返回值(boolean)来确定是否删除, 示例代码如下: package com.FM…
import java.util.HashSet; import java.util.Collection; import java.util.function.Predicate; public class PredicateTest2 { public static void main(String[] args) { Collection books = new HashSet(); books.add("java"); books.add("疯狂"); bo…
一个需求: 把年龄大于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…
java代码之美(13)--- Predicate详解 遇到Predicate是自己在自定义Mybatis拦截器的时候,在拦截器中我们是通过反射机制获取对象的所有属性,再查看这些属性上是否有我们自定义的UUID注解. 如果有该注解,那么就给该属性赋值UUID随机字符串,作为主键保存到数据库.所以前提条件就是获取带有UUID注解的属性,就需要用到Predicate. //获取所有带UUID注解的属性 Set<Field> allFields = ReflectionUtils.getFields…
什么是函数式接口 为什么要用函数式接口 java.util.function和其他的函数式接口 lamdba表达式 方法引用 流 Stream 1 什么是函数式接口 用@FunctionInterface注解的接口是函数式接口,那么不用@FunctionInterface注解的接口是不是函数式接口?什么接口能用@FunctionInterface注解呢? 函数式接口满足一个条件,只有一个抽象方法.在JDK的API中的,只有一个抽象方法的接口可以用@FunctionInterface注解. 2 为…
Predicate 接口说明 /* * 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; /** * Represents a predicate…
Predicate详解 遇到Predicate是自己在自定义Mybatis拦截器的时候,在拦截器中我们是通过反射机制获取对象的所有属性,在查看这些属性上是否有我们自定义的UUID注解 如果有该注解,那么就给该属性赋值UUID随机字符串,作为主键保存到数据库,所以前提条件是获取带有UUID注解的属性,就需要用到Predicate //获取所有带有UUID注解的属性 Set<Field> allFields = ReflectionUtils.getFields(object.getClass()…
同学你好,这里有一份你的未读代码,等你查收. 这篇文章属于 Java 8 教程(LTS)系列教程,点击阅读更多相关文章. Predicate 函数接口同之前介绍的 Function 接口一样,是一个函数式接口,它可以接受一个泛型 <T> 参数,返回值为布尔类型.Predicate 常用于数据过滤,如过滤出集合中符合某个条件的元素. 源码:Java 8 中函数接口 Predicate. package java.util.function; import java.util.Objects; @…
一.java.util.function.Predicate 这里类是java自带主要广泛用在支持lambda表达式的API中. 1.接口源码 @FunctionalInterface public interface Predicate<T> { /** * 具体过滤操作 需要被子类实现. * 用来处理参数T是否满足要求,可以理解为 条件A */ boolean test(T t); /** * 调用当前Predicate的test方法之后再去调用other的test方法,相当于进行两次判断…
java.util.Collection接口 Java的集合主要由两个接口派生出来,一个是Collection一个是Map,本章只记录Collection常用集合 集合只能存储引用类型数据,不能存储基本类型数据 集合类是一种特别有用的工具类,它可以存放数量不等的对象,实现常用的数据结构,如栈,队列等.除此之外,Java集合还可用于保存具有映射关系的关联数组.简单的来说,Java集合就是一个容器,可以把多个对象丢进该容器中. Collection从父类接口Iterable中继承了抽象方法itera…
委托和事件 委托在C#中具有无比重要的地位. C#中的委托可以说俯拾即是,从LINQ中的lambda表达式到(包括但不限于)winform,wpf中的各种事件都有着委托的身影.C#中如果没有了事件,那绝对是一场灾难,令开发者寸步难行.而委托又是事件的基础,可以说是C#的精髓,个人认为,其地位如同指针之于C语言. 很多开发者并不清楚最原始版本的委托的写法,但是这并不妨碍他们熟练的运用LINQ进行查询.对于这点我只能说是微软封装的太好了,导致我们竟可以完全不了解一件事物的根本,也能正确无误的使用.而…
一,为了更明白地使用Babel, 先了解Babel 的发展过程. 现在Babel的版本是6, 相对于以前的版本, 它做了重大更新: 1, 模块化:所有的内部组件都变成了单独的包.打开Babel在GitHub上的地址,  我们看到了Packages(包), 它分为了Core Packages (babel-core) 和 Other 如 (babel-cli, babel-polyfill), 这些都是一个一个单独的包. 看一下 核心包 babel-core: Babel-core is the…
1. Array.isArray(obj) if (!Array.isArray) { Array.isArray = function(arg) { return Object.prototype.toString.call(arg) === '[object Array]'; }; } 2. Array.of if (!Array.of) { Array.of = function() { return Array.prototype.slice.call(arguments); }; }…
 if (!Array.prototype.find) {  Array.prototype.find = function(predicate) {    'use strict';    if (this == null) {      throw new TypeError('Array.prototype.find called on null or undefined');    }    if (typeof predicate !== 'function') {      thro…
[Google Guava] 4-函数式编程 原文链接 译文链接 译者:沈义扬,校对:丁一 注意事项 截至JDK7,Java中也只能通过笨拙冗长的匿名类来达到近似函数式编程的效果.预计JDK8中会有所改变,但Guava现在就想给JDK5以上用户提供这类支持. 过度使用Guava函数式编程会导致冗长.混乱.可读性差而且低效的代码.这是迄今为止最容易(也是最经常)被滥用的部分,如果你想通过函数式风格达成一行代码,致使这行代码长到荒唐,Guava团队会泪流满面. 比较如下代码: 查看源代码 打印帮助…
本文由 ImportNew 函数式接口 函数式接口(functional interface 也叫功能性接口,其实是同一个东西).简单来说,函数式接口是只包含一个方法的接口.比如Java标准库中的java.lang.Runnable和 java.util.Comparator都是典型的函数式接口.java 8提供 @FunctionalInterface作为注解,这个注解是非必须的,只要接口符合函数式接口的标准(即只包含一个方法的接口),虚拟机会自动判断, 但 最好在接口上使用注解@Functi…
1. 实现Runnable线程案例 使用() -> {} 替代匿名类: //Before Java 8: new Thread(new Runnable() { @Override public void run() { System.out.println("Before Java8 "); } }).start(); //Java 8 way: new Thread( () -> System.out.println("In Java8!") ).s…
文章转载自:http://my.oschina.net/leejun2005/blog/172328 目录:[ - ] 1-使用 GOOGLE COLLECTIONS,GUAVA,STATIC IMPORTS 编写漂亮代码 1.Google Collections一览 2.操作lists和maps 3.静态导入和Eclipse模板 4.Guava走马观花 2-深入探索 GOOGLE GUAVA 库 1.The Guava CharMatcher 2.Joiner and Splitter 3.W…
Linq是.net平台一个重要的技术,全称Language Integrated Query.通过构建快速查询语句,可快速从数据库或集合中筛选数据集.以查询数据库相同的方式操作内存数据. 在ECMAScript 5th以后的版本中,Javascript实现了有限的有限的Linq查询方式,包括forEach, every, some, filter, map, reduce and reduceRight. 首先需要说明,以上这些方法并不是跨浏览器的,对版本有相应的限制.我们知道Linq的对象需要…
20145120 <Java程序设计>第7周学习总结 教材学习内容总结 Lambda表达式 例:Comparator<String> byLength = (name1, name2) -> name1.length() - name2.length(); 等号右边是Lambda表达式,左边是其目标类型 Lambda不建议用多行描述 Lambda中即使不接受任何参数也必须写括号 在只有Lambda表达式的情况下,参数的类型必须写出来. @FunctionalInterface…