四大内置核心函数式接口

四大内置核心函数式接口

四大内置核心函数式接口

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;
}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • goland2021永久激活码破解方法

    goland2021永久激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    96
  • DS1302驱动代码「建议收藏」

    DS1302驱动代码「建议收藏」DS1302时钟基础使用(含代码)了解其管脚X1X232.768KHz晶振管脚GND地RST复位脚I/O数据输入/输出引脚,具有三态SCLK串行时钟Vcc1,Vcc2(备用电源供电)电源供电管脚DS1302的寄存器及片内RAM控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字就为控制命令。它用于对DS1302读写过程进…

    2025年7月28日
    2
  • 771服务器cpu性能排行,CPU114查询网

    771服务器cpu性能排行,CPU114查询网4485083264155WQ4201954736564128225WQ2201964606764128200WQ220197392991632155WQ420198392701632105WQ4201910358722448180WQ420191333158122465WQ2201914318681224105WQ22019183067912246…

    2022年9月20日
    5
  • Java——时间日期格式化

    时间格式化类SimpleDateFormat类抽象类,工厂方法。用于java.util.Date和java.sql.Date线程不安全字符串格式化为时间对象.parse()方法//从字符串提取出日期StringstrDate=”2008-11-17″;Stringpat=”yyyy-MM-dd”;SimpleDateForma…

    2022年4月6日
    52
  • DNS负载均衡技术

    DNS负载均衡技术负载均衡技术能够平衡服务器集群中所有的服务器和请求应用之间的通信负载,根据实时响应时间进行判断,将任务交由负载最轻的服务器来处理,以实现真正的智能通信管理和最佳的服务器群性能,从而使网站始终保持运行和保证其可访问性。  为了充分利用现有服务器软件的种种优势,负载均衡最好是在服务器软件之外来完成。而最早使用的负载均衡技术是通过DNS服务中的随机名字解析来实现的。这就是通常所说的DNS负载均衡

    2022年7月14日
    15
  • tomcat日志配置——如何查看日志

    tomcat日志配置——如何查看日志Tomcat日志设定1、Tomcat日志概述Tomcat日志信息分为两类:一、是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息。二、是访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。2Tomcat日志配置2.1访问日志的配置默认tomcat不记录访问日志,如下方法可以使tomc…

    2022年6月20日
    79

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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