//java8的4大核心函数式接口
//1.Consumer<T>:消费性接口
//需求:
public void happy(double money, Consumer<Double> consumer){
consumer.accept(money);
}
@Test
public void test(){
happy(1000,(e)-> System.out.println("happy消费了"+ e +"元"));
}
//2.Supplier<T> 供给型接口
//T get();
//需求:产生一定数量整数,并放进集合中
public List<Integer> getList(int size, Supplier<Integer> supplier){
List<Integer> list = new ArrayList<>();
for (int i = 0; i < size; i++) {
Integer num = supplier.get();
list.add(num);
}
return list;
} @Test
public void test2(){
List<Integer> list = getList(10,()->(int)(Math.random()*100));
for (Integer num :
list) {
System.out.println(num);
}
} //3.函数型接口
//Function<T,R>
//R apply<T t>
//需求:去除首尾空格
public String strHandler(String str, Function<String,String> fun){
return fun.apply(str);
}
@Test
public void test3(){
String strTrim = strHandler("\t\t\txsjifcdsnkjfhs ",(e)->e.trim());
System.out.println(strTrim);
}
//4.Predicate 断言型接口
//boolean test(T t)
//将满足条件的字符串放进集合
public List<String> getNewList(List<String> list , Predicate<String> pre){
List<String> newList = new ArrayList<>();
for (String str :
list) {
if(pre.test(str)){
newList.add(str);
} }
return newList;
}
@Test
public void test4(){
List<String> list = java.util.Arrays.asList("adsj","xjsai","sdjasio","ws");
List<String> li = getNewList(list,(s)->s.length()>3);
for (String str :
li) {
System.out.println(str);
} }

java8的4大核心函数式接口的更多相关文章

  1. java8新特性——四大内置核心函数式接口

    在前面几篇简单介绍了一些Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口得,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义 ...

  2. Java8新特性探索之函数式接口

    一.为什么引入函数式接口 作为Java函数式编程爱好者,我们都知道方法引用和 Lambda 表达式都必须被赋值,同时赋值需要类型信息才能使编译器保证类型的正确性. 我们先看一个Lambda代码示例: ...

  3. Java8内置的四大核心函数式接口

    package java_8; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import j ...

  4. Java8新特性 - Java内置的四大核心函数式接口

    Java内置的四大核心函数式接口 Consumer:消费型接口 对类型为T的对象应用操作,包含方法:void accept(T t) public class TestLambda02 { publi ...

  5. Java8新特性_四大内置核心函数式接口

    Consumner : 消费型接口 Supplier :供给型接口 Function:函数式接口 Predicate:断言型接口 其他接口: 四大内置核心函数式接口: Consumner : 消费型接 ...

  6. JDK8新特性03 Lambda表达式03_Java8 内置的四大核心函数式接口

    import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.functio ...

  7. java8新特性学习:函数式接口

    本文概要 什么是函数式接口? 如何定义函数式接口? 常用的函数式接口 函数式接口语法注意事项 总结 1. 什么是函数式接口? 函数式接口其实本质上还是一个接口,但是它是一种特殊的接口:SAM类型的接口 ...

  8. java8中规范的四大函数式接口

    java8中规范的四大函数式接口: 1.Consumer<T>   :消费型接口    void accept(T t); 2.Supplier<T>      :供给型接口  ...

  9. Java8常用的内置函数式接口(一)Predicate、Consumer、Supplier、Function

    Java8常用的内置函数式接口(一) 简介 JDK 1.8 API中包含了很多内置的函数式接口.有些是在以前版本的Java中大家耳熟能详的,例如Comparator接口,或者Runnable接口.对这 ...

随机推荐

  1. Rabbit的事务

    加入事务的方法: txSelect()  txCommit()  txRollback() 生产者: package com.kf.queueDemo.transactions; import jav ...

  2. maven filter不起作用

    遇到的一个坑, spring boot + maven maven fileter没有起作用.spring boot把默认占位符改了 参考:https://blog.csdn.net/mn960mn/ ...

  3. sql: T-SQL 统计计算(父子關係,樹形,分級分類的統計)

    ---sql: T-SQL 统计计算(父子關係,樹形,分級分類的統計) ---2014-08-26 塗聚文(Geovin Du) CREATE PROCEDURE proc_Select_BookKi ...

  4. C语言归并排序

    这篇文章是学习了小甲鱼-数据结构与算法结合自考教材编写出的代码,希望自己逐渐在算法造诣上能更上一层楼. 归并排序(递归实现) “归并”一词在中文含义中就是合并的意思,而在数据结构中的定义是将两个或者两 ...

  5. 【C#】关于DateTime的一点记录 ToString("yyyy-MM-dd HH:mm:ss")

    DateTime dt = DateTime.Now; string z = dt.ToString("yyyy-MM-dd HH:mm:ss");//你直达这个是 年月日时分秒的 ...

  6. python 小词云

    # Author:Alex.wang# Date:2017.06.02# Version:3.6.0 import matplotlib.pyplot as pltfrom wordcloud imp ...

  7. UnicodeDecodeError: 'utf8' codec can't decode byte in position invalid start byte

    在scrapy项目中,由于编码问题,下载的网页中中文都是utf-8编码,在Pipeline.py中方法process_item将结果保存到数据库中时,提示UnicodeDecodeError: 'ut ...

  8. 正则去除html标签属性保留指定标签

    /// <summary> /// 去除标签里面的属性保留IMG标签属性 /// </summary> /// <param name="strText&quo ...

  9. 让NSUserDefaults使用起来像对象一样容易

    让NSUserDefaults使用起来像对象一样容易 巧妙的设计,是为了简化开发提升效率而存在. 设计要点: 1. 单例模式 2. 重写setter,getter方法 3. 专门的类来管理单例 使用时 ...

  10. linux中进入mysql时报错Access denied for user 'root'@'localhost' (using password: YES)解决方案

    之前在linux中装完mysql后直接在命令行窗口输入mysql就会进入数据库了,但是今天输入mysql命令后直接报错,如下图: 之后输入:mysql -uroot -p 提示输入密码:***** 还 ...