函数式接口作为方法的返回值

函数式接口作为方法的返回值

  1. 需求:定义一个类(ComparatorDemo),在类中提供两个方法
  • 一个方法是:comparablegetComparator() 方法返回值Comparator是一个函数式接口
  • 一个方法是主方法,在主方法调用getComparator方法
  1. 如果方法的返回值是一个函数式接口,我们可以使用lambda表达式作为结果返回
  • private static ComparatorgetComparator(){
    return (s1,s2)->s1.length()-s2.length();
    }
  • static void sort(List list, Comparator<? super T> c)
    根据指定的比较器引起的顺序对指定的列表进行排序。

以代码内容形式讲解

package Demo6;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

/*
static <T> void sort(List<T> list, Comparator<? super T> c)
根据指定的比较器引起的顺序对指定的列表进行排序。


函数式接口作为方法的返回值
需求:
* 定义一个类(ComparatorDemo),在类中提供两个方法
一个方法是:comparable<String>getComparator() 方法返回值Comparator是一个函数式接口
一个方法是主方法,在主方法调用getComparator方法

如果方法的返回值是一个函数式接口,我们可以使用lambda表达式作为结果返回
* private static Comparator<String>getComparator(){
  return (s1,s2)->s1.length()-s2.length();
}
 */
public class ComparatorDemo {
    public static void main(String[] args) {
        //构造应用场景

        //定义ArraysList集合,存储字符串元素
        ArrayList<String> a=new ArrayList<String>();
        a.add("cccc");
        a.add("aa");
        a.add("b");
        a.add("ddd");

        System.out.println("排序前"+a);

        //static <T> void sort(List<T> list, Comparator<? super T> c) 根据指定的比较器引起的顺序对指定的列表进行排序。

//        Collections.sort(a);默认自然排序

        Collections.sort(a,getComparator());

        System.out.println("排序后"+a); //按照长度排

    }

    private static Comparator<String> getComparator() {
//        //匿名类形式写
//        Comparator<String> comp = new Comparator<String>() {
//            @Override
//            public int compare(String s1, String s2) {
//                return s1.length()-s2.length();
//            }
//        };
//      return comp;
//    };


        //用lambda表达式写
        Comparator<String> demo = (s1, s2) -> s1.length() - s2.length();
        return demo;
    }
}

吴含

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

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

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

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

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

打赏作者

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

抵扣说明:

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

余额充值