JAVA箭头函数和自定义排序

jdk8+以上引入了箭头函数,即J8的lambda表达式。

Java中实现对list的自定义排序主要通过两种方式

1)让需要进行排序的对象的类实现Comparable接口,重写compareTo(T o)方法,在其中定义排序规则,那么就可以直接调用Collections.sort()来排序对象数组,像Integer,String,这两种引用类型都实现了compareble接口,所以这两种类型的数组都可直接使用Arrays.sort()进行排序。
2)实现比较器接口Comparator,重写compare方法,直接当做参数传进sort中,(更加灵活)下面使用了这一种方法。
1.基本形式

// 1. 不需要参数,返回值为 5  
() -> 5  
// 2. 接收一个参数(数字类型),返回其2倍的值  
x -> 2 * x  
// 3. 接受2个参数(数字),并返回他们的差值  
(x, y) -> x – y  
// 4. 接收2个int型整数,返回他们的和  
(int x, int y) -> x + y    
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)  
(String s) -> System.out.print(s)

2.数组排序

public class Test {
    public static void main(String[] args) {

        String[] stringArrays = {"Rafael Nadal", "Novak Djokovic", "Stanislas Wawrinka",
                "David Ferrer", "Roger Federer", "Andy Murray", "John Isner"};

// 1.1 使用匿名内部类根据 name 排序 players
        Arrays.sort(stringArrays, new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                return (s1.compareTo(s2));
            }
        });

// 1.2 使用 lambda expression 排序 players
        Comparator<String> sortByName = (String s1, String s2) -> (s1.compareTo(s2));
        Arrays.sort(stringArrays, sortByName);

// 1.3 也可以采用如下形式:
        Arrays.sort(stringArrays, (String s1, String s2) -> (s1.compareTo(s2)));
    }
}

说明:返回值>0,则this string is greater than the string argument。

3.集合排序
在这里插入图片描述
集合排序调用了Arrays排序方法

 fileList.sort((f1, f2) -> {
   return f1.lastModified() - f2.lastModified();
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值