java8之Lambda核心接口简介说明

乔欣 Java教程 发布时间:2023-03-07 10:18:00 阅读数:18401 1
下文笔者讲述java8中核心接口简介说明,如下所示

Lambda核心接口简介

java8四大核心函数式接口
  Consumer<T> :消费接口
    void accept(T t);
   Suppliter<T>:供给型接口
     T get();
   Function<T,R>:函数型接口
     R apply(T t);
   Predicate<T> : 断言型接口
      boolean test(T t);
package com.java265.jedis.test.test2;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.Arraylist;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

@SpringBootTest
@RunWith(SpringRunner.class)
public class LambdInterface {
    /**
     * Consumer<T> :消费接口
     */
    @Test
    public void test1() {
        testConsumer( 88,(x) -> System.out.println("消费"+x));
    }

    public void testConsumer(double d, Consumer<Double> consumer) {
        consumer.accept( d );
    }

 
    /**
     *Suppliter<T>:供给型接口
     */
    @Test
    public void test2() {
        List <Integer> i = getTest(10,() -> (int)Math.random()*88);
        i.forEach( (o) -> System.out.println(o));
    }

    /**
     * 得到任意长度的集合
     * @param i
     * @param supplier
     * @return
     */
    public List<Integer> getTest(int i, Supplier<Integer> supplier) {
        List<Integer> list = new ArrayList <>(  );
        for(int j = 0;i<=i;++j) {
            Integer integer = supplier.get();
            list.add( integer );
        }
        return list;
    }



    /**
     *Function<T,R>:函数型接口
     */
    @Test
    public void test3() {
        getString( "sdfds  ",(x1) -> x1.trim() );
    }

    /**
     * 去掉字符串中的空格
     * @param s
     * @param function
     * @return
     */
    public String getString(String s, Function<String,String> function) {
            return function.apply( s );
    }




    /**
     *Predicate<T> : 断言型接口
     */
    @Test
    public void test4() {
        List<String> sli = Arrays.asList( "dddd","fgg","gfjjg","fsdfsgdf" );
        List<String> list = checkString(sli,(s) -> s.length()>5);
        list.forEach( (s) -> System.out.println(s));
    }


    /**
     * 将满足条件的数据放在集合中
     */
    public List<String> checkString(List<String> list, Predicate<String> predicate) {
        List<String> slist = new ArrayList <>(  );
        list.forEach( (o) -> {
            if(predicate.test( o )) {
                slist.add( o );
            }
        } );
        return slist;
    }
} 
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202303/5976.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者