Function<T,R>函数的使用

本文详细介绍了Java中的Function接口,包括默认方法`andThen`和`compose`的使用,以及`identity`方法。通过实例展示了如何利用Function进行函数组合,将字符串转换为整型,再进行加法运算并返回结果。此外,还提供了练习题,演示了如何将字符串中的年龄转换为整数,加70后再转回字符串输出。
摘要由CSDN通过智能技术生成

概述

在这里插入图片描述

方法名方法说明
default Function<T,V> andThen(Function<? super R,? extends V> after)返回一个组合函数,首先将该函数应用于其输入,然后将 after函数应用于结果。
default Function<V,R> compose(Function<? super V,? extends T> before)返回一个组合函数,首先将 before函数应用于其输入,然后将此函数应用于结果。
static Function<T,T> identity()返回一个总是返回其输入参数的函数。
R apply(T t)将此函数应用于给定的参数。

以图文和内容形式讲解代码

在这里插入图片描述

定义一个FunctionDemo类

package Demo;

import java.util.ArrayList;
import java.util.function.Function;
import java.util.function.Predicate;

public class FunctionDemo {
    public static void main(String[] args) {
//        convert("12345",s->Integer.parseInt(s));//该方法只能是字符串的数字
//        convert(100,i->String.valueOf(i+566));
        convert("566",s->Integer.parseInt(s),i->String.valueOf(i+100));

    }
    
    
    
    
    private static void convert(String s, Function<String,Integer> f){
        int apply = f.apply(s);
        System.out.println(apply);

    }
    
    
    private static void convert(Integer i, Function<Integer,String> f){
        String apply = f.apply(i);
        System.out.println(apply);
    }
    
    
    //输入一个566字符串返回整型,然后再加一个数变为字符串,并将组合起来输出
    private static void convert(String s, Function<String,Integer> f1,Function<Integer,String>f2){
        String apply = f1.andThen(f2).apply(s);
        System.out.println(apply);
    }
}

输出的内容:
666

以例题形式讲解

  • 练习
    String s=“iKun,30”
    请按照我指定的要求进行操作:
    1. 将字符串截取得到数字年份部分
    2. 将上一步的年龄字符串转换为int类型的数据
    3. 将上一步的int数据加70,得到一个int结果,返回String型,在控制台输出
      请通过Function接口实现函数拼接
      定义一个FunctionDemo类
package Demo;

import java.util.ArrayList;
import java.util.function.Function;
import java.util.function.Predicate;

public class FunctionDemo {
    public static void main(String[] args) {
        String s="iKun,30";
        String s1 = s.split(",")[1];
        System.out.println(s.split(",")[0]+convert(s1,ss->Integer.parseInt(ss),i->String.valueOf((i+70))));

    }

    private static String convert(String s,Function<String,Integer> f1,Function<Integer,String> f2){
        String apply = f1.andThen(f2).apply(s);
        return apply;

    }
}

输出的内容为:
iKun100

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发热的嘤嘤怪(2003计科胜胜同学)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值