java8特性-四大函数式接口
Posted 、Dong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8特性-四大函数式接口相关的知识,希望对你有一定的参考价值。
前言
一、Consumer:消费型接口(void accept(T t))
/**
* 消费型接口Consumer<T>
*/
@Test
public void test1 ()
consumo(500, (x) -> System.out.println(x));
public void consumo (double money, Consumer<Double> c)
c.accept(money);
二、Supplier:供给型接口(T get())
/**
* 供给型接口,Supplier<T>
*/
@Test
public void test2 ()
Random ran = new Random();
List<Integer> list = supplier(10, () -> ran.nextInt(10));
for (Integer i : list)
System.out.println(i);
/**
* 随机产生sum个数量得集合
* @param sum 集合内元素个数
* @param sup
* @return
*/
public List<Integer> supplier(int sum, Supplier<Integer> sup)
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < sum; i++)
list.add(sup.get());
return list;
三、Function<T, R>:函数型接口(R apply(T t))
/**
* 函数型接口:Function<R, T>
*/
@Test
public void test3 ()
String s = strOperar(" asdf ", x -> x.substring(0, 2));
System.out.println(s);
String s1 = strOperar(" asdf ", x -> x.trim());
System.out.println(s1);
/**
* 字符串操作
* @param str 需要处理得字符串
* @param fun Function接口
* @return 处理之后得字符传
*/
public String strOperar(String str, Function<String, String> fun)
return fun.apply(str);
四、Predicate:断言型接口(boolean test(T t))
/**
* 断言型接口:Predicate<T>
*/
@Test
public void test4 ()
List<Integer> l = new ArrayList<>();
l.add(102);
l.add(172);
l.add(13);
l.add(82);
l.add(109);
List<Integer> list = filterInt(l, x -> (x > 100));
for (Integer integer : list)
System.out.println(integer);
/**
* 过滤集合
* @param list
* @param pre
* @return
*/
public List<Integer> filterInt(List<Integer> list, Predicate<Integer> pre)
List<Integer> l = new ArrayList<>();
for (Integer integer : list)
if (pre.test(integer))
l.add(integer);
return l;
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
以上是关于java8特性-四大函数式接口的主要内容,如果未能解决你的问题,请参考以下文章
java8新特性-四大函数式接口(ConsumerSupplierFunctionPredicate)使用样例
Java8新特性——Lambda表达式之四大核心函数式接口 & 方法/构造器/数组引用