Lambda实现字符串数组排序

时间:2025-03-27 13:25:18

why use Lambda

最近看了Lambda表达式,它使用简洁的语法来创建函数式接口的实例,避免匿名内部类的繁琐。
我们直接通过一个自定义排序字符数组的例子来感受下吧。

匿名内部类实现

import ;
import ;

public class Test {
    public static void main(String[] args){
        String[] str={"aab","aac","aab","aad","zoo","jvm","lee"};
        (str,new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                if((o1==null && o2==null))
                    return 0;
                //假定o1和o2长度相同
                int flag=0;
                for(int i=0;i<();i++){
                    if((i)>(i)){
                        //第一个字符串大,返回值>0
                        flag=1;
                        break;
                    }
                    else if((i)<(i)){
                        //第一个字符串小,返回值<0
                        flag=-1;
                        break;
                    }
                }
                return flag;
            }
        });
        for(String s:str)
            (s);
     }
}

Lambda表达式实现

import ;

public class Test {
    public static void main(String[] args){
        String[] str={"aab","aac","aab","aad","zoo","jvm","lee"};
        (str,(o1, o2) -> {
                if((o1==null && o2==null))
                    return 0;
                //假定o1和o2长度相同
                int flag=0;
                for(int i=0;i<();i++){
                    if((i)>(i)){
                        //第一个字符串大,返回值>0
                        flag=1;
                        break;
                    }
                    else if((i)<(i)){
                        //第一个字符串小,返回值<0
                        flag=-1;
                        break;
                    }
                }
                return flag;
            });
        for(String s:str)
            System.out.println(s);
    }
}