四大内置核心函数式接口

四大内置核心函数式接口

四大内置核心函数式接口

1.Cosumer<T>消费型接口

void accept(T t);

/**
 * @Author: 郜宇博
 * @Date: 2021/8/31 21:34
 * 四大核心内置接口
 */
public class BuiltInInterface {

    /**
     * 消费型接口
     * @param money
     * @param consumer
     */
    public void happy(int money, Consumer<Integer> consumer){
        consumer.accept(money);
    }
    @Test
    public void test(){
        happy(100,(Integer money)->{
            System.out.println("消费了"+money+"元");
        });
    }
    
}

2.Supploer< T> 供给型接口

T get();

@Test
public void test(){
    //每次调用供给型接口生产随机数,存储在arrayList中
    ArrayList<Integer> arrayList = product(10, ()-> new Random().nextInt(100));
    //遍历
    Iterator<Integer> iterator = arrayList.iterator();
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }

}
public ArrayList<Integer> product(int count, Supplier<Integer> supplier){
    ArrayList<Integer> list = new ArrayList<>();
    //生产count次
    for (int i = 0; i < count; i++) {
        Integer num = supplier.get();
        list.add(num);
    }
    return list;
}

3.Function< T> 函数型接口

R apply(T t);

//函数式接口测试
@Test
public void test3(){
    final String oldStr = "\t\t\t你好";
    String strHandler = strHandler(oldStr,(str)->str.trim());
    System.out.println(oldStr);
    System.out.println(strHandler);
}

public String strHandler(String str, Function<String,String> function){
    String strHandler = function.apply(str);
    return strHandler;
}

4.Predicate< T>断言式接口

boolean test(T t);

@Test
public void test4(){
    List<String> list = Arrays.asList("abcd","abd","eww","dsadasdas","12");
    //接口实现为字符串长度大于3
    List<String> newList = strFilter(list,(str)->str.length()>3);
    System.out.println(newList);
}

//断言式接口
public List<String> strFilter(List<String> list, Predicate<String > predicate){
    List<String> newStrings = new ArrayList<>();
    for(String str: list){
        //满足断言条件的加入到新的集合中
        if (predicate.test(str)){
            newStrings.add(str);
        }
    }
    return newStrings;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115173.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • c语言编程 sort()什么意思,void sort在C语言中什么意思?「建议收藏」

    c语言编程 sort()什么意思,void sort在C语言中什么意思?「建议收藏」void是C语言中的一个关键字,其含义因其应用形式不同,一般分为两种:void和void*void的字面意思是“无类型”,void*则为“无类型指针”,void*可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,定义一个void变量没有意义,不妨试着定义:这行语句编译时会出错,提示“illegaluseoftype’void’”。不过,即使voida的编译不会出错,…

  • SCTP简介

    SCTP简介SCTP(StreamControlTransmissionProtocol)是一种传输协议,在TCP/IP协议栈中所处的位置和TCP、UDP类似,兼有TCP/UDP两者特征。SCTP是可以确保数据传输的,和TCP类似,也是通过确认机制来实现的。和TCP不同的是:1.TCP是以字节为单位传输的,SCTP是以数据块为单位传输的TCP接收端确认的是收到的字节数,SCTP接收端确认

  • IM在线聊天-微聊即时通讯完整源码「建议收藏」

    IM在线聊天-微聊即时通讯完整源码「建议收藏」简介:好友分享的,社区发布过很多版即时通讯了,零零碎碎几十套了,这个看了下和之前的有点小区别,同样是可以后台直接挂地址,方便内嵌一些cp啊,单啊之类的程序在里面,带一个简易的搭建说明,linux下运行的。网盘下载地址:http://kekewl.org/6zo4TAmfVRe0图片:…

  • a卡eth挖矿教程_a卡挖eth用什么内核

    a卡eth挖矿教程_a卡挖eth用什么内核  对于ETH挖矿来说,A卡无疑是最合适的选择,性价比高。如果你只想挖ETH,那选择A卡无疑是最明智的。但是,在使用A卡挖矿的过程中,往往会出现很多难以解决的问题,影响挖矿的效率。其中很大一部分原因是由于A卡本身的特性导致的。很多人在使用A卡挖ETH的过程中会出现这样一种情况:开始一段时间还是正常的运行,但是运行一段时间后就开始报错,导致无法正常挖矿。这是由于A卡具有自动更新的特性。所以在使用A卡…

    2022年10月16日
  • char类型「建议收藏」

    char类型「建议收藏」1、JAVA中,char占2字节,16位。可在存放汉字2、char赋值chara='a';//任意单个字符,加单引号。chara='中';//任意单个中文字,加单

  • pycharm如何使用mysql_pycharm中的MySQL驱动

    pycharm如何使用mysql_pycharm中的MySQL驱动一般的开发过程中,我们需要使用pycharm来连接数据库,从而来进行对数据库的操作,这里主要连接的是mysql数据库,另外加了使用pandas模块读取数据库的操作,基本的操作如下所示:直接连接数据库importpymysqlconn=pymysql.connect(host=’localhost’,port=3306,db=’joker’,user=’root’,password=’root…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号