java8的4大核心函数式接口
//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大核心函数式接口的更多相关文章
- java8新特性——四大内置核心函数式接口
在前面几篇简单介绍了一些Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口得,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义 ...
- Java8新特性探索之函数式接口
一.为什么引入函数式接口 作为Java函数式编程爱好者,我们都知道方法引用和 Lambda 表达式都必须被赋值,同时赋值需要类型信息才能使编译器保证类型的正确性. 我们先看一个Lambda代码示例: ...
- Java8内置的四大核心函数式接口
package java_8; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import j ...
- Java8新特性 - Java内置的四大核心函数式接口
Java内置的四大核心函数式接口 Consumer:消费型接口 对类型为T的对象应用操作,包含方法:void accept(T t) public class TestLambda02 { publi ...
- Java8新特性_四大内置核心函数式接口
Consumner : 消费型接口 Supplier :供给型接口 Function:函数式接口 Predicate:断言型接口 其他接口: 四大内置核心函数式接口: Consumner : 消费型接 ...
- JDK8新特性03 Lambda表达式03_Java8 内置的四大核心函数式接口
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.functio ...
- java8新特性学习:函数式接口
本文概要 什么是函数式接口? 如何定义函数式接口? 常用的函数式接口 函数式接口语法注意事项 总结 1. 什么是函数式接口? 函数式接口其实本质上还是一个接口,但是它是一种特殊的接口:SAM类型的接口 ...
- java8中规范的四大函数式接口
java8中规范的四大函数式接口: 1.Consumer<T> :消费型接口 void accept(T t); 2.Supplier<T> :供给型接口 ...
- Java8常用的内置函数式接口(一)Predicate、Consumer、Supplier、Function
Java8常用的内置函数式接口(一) 简介 JDK 1.8 API中包含了很多内置的函数式接口.有些是在以前版本的Java中大家耳熟能详的,例如Comparator接口,或者Runnable接口.对这 ...
随机推荐
- D3基础---简介和数据
D3.js是一种数据操作类型的javascript库(也可视其为插件):结合HTML,SVG和CSS,D3可以图形化的,生动的展现数据. d3获取:http://d3js.org/ 在代码文件中引入D ...
- [android] 天气app布局练习
主要练习一下RelativeLayout和LinearLayout <RelativeLayout xmlns:android="http://schemas.android.com/ ...
- 添加jquery脚本文件
对于后台添加JQuery需要加上../js {insert_scripts files ="../js/jquery.1.14.min.js"}
- nodejs的socket.io学习笔记
socket.io学习笔记 1.服务器信息传输: 2.不分组,数据传输: 3.分组数据传输: 4.Socket.io难点大放送(暂时没有搞定): 服务器信息传输 1. // send to curre ...
- CentOS7下开启端口
开启端口: firewall-cmd --zone=public --add-port=80/tcp --permanent 含义: --zone #作用域 --add-port=80/tcp #添加 ...
- IE6 行内定义成块元素后高度失效
问题描述: ie6下,空标签块元素height定义失效,表现为除设置的height值外还会显示N像素额外的高度. 实际运用中,若标签为空且定义了小于14px的高度,再加入一背景图的话,会发现该元素高度 ...
- Windows 8 Metro风格颜色表-Metro colours
http://huaban.com/pins/538986818
- Android weex的集成和开发
最近为了项目需要(实际上是为了年底KPI),领导要求用3天时间,学习并使用weex开发一个页面,说实话,压力山大.在这之前压根儿就没听说过啊,一脸懵逼 无奈之余只能Google了,惊喜的发现weex的 ...
- matlab练习程序(三角形外接圆)
三角形两边的垂直平分线就能确定外接圆. 结果如下: matlab代码如下: clear all;close all;clc; p=rand(,); %(x,y) cen1=(p(,:)+p(,:))/ ...
- beifencode
package com.hesheng.myapplication; import android.content.Context;import android.graphics.Bitmap;imp ...