Java 排序内容记录

Java 排序内容记录


前言


一、数组排序

int[] lius={1,3,5,7,9,11,13,15,2,4,6,8,10,12,14};
Arrays.sort(lius);//升序(由小到大)
Integer[] liu={1,3,5,7,9,11,13,15,2,4,6,8,10,12,14}; //必须是大写的包装类才可以
Arrays.sort(liu, Collections.reverseOrder());//降序(由大到小)
        
Arrays.stream(lius).forEach(System.out::println);
Arrays.stream(liu).forEach(System.out::println);

//倒序排序
//(1)由于不提供降序方法,你可以倒叙输出
System.out.println("降序输出:");
for (int i = liu.length - 1; i >= 0; i--) {
        System.out.println(array[i]);
}

List<Integer> integers = Ints.asList(lius);
integers.forEach(System.out::println);//原数组
Collections.sort(integers);
integers.forEach(System.out::println);//升序
Collections.reverse(integers);
integers.forEach(System.out::println);//降序

//引用类型数组排序
        File[] files = new File("D:\\chromelog\\CB001A10405").listFiles();
        //Arrays.sort(files);//如果这样直接写是不排序的;
        Arrays.sort(files,(x,y) -> {
            long l = x.lastModified()-y.lastModified();
            return l>0?-1:1;//降序
//            return l>0?1:-1;//升序
        });
        for (File file : files) {
            System.out.println(file.getName());
        }

二、集合排序

//文件排序
        File[] files = new File("D:\\chromelog\\log").listFiles();
        List<File> files1 = Arrays.asList(files);
        Collections.sort(files1,(x,y) -> {
            long l = x.lastModified()-y.lastModified();
            return l>0?-1:1;//降序
//            return l>0?1:-1;//升序
        });
        
        for (File file1 : files1) {
            System.out.println(file1.getName());
        }
//这样写与上面的相同
        File[] files = new File("D:\\chromelog\\CB001A10405").listFiles();
        List<File> files1 = Arrays.asList(files);
        Collections.sort(files1, new Comparator<File>() {
            @Override
            public int compare(File o1, File o2) {
                long l = o1.lastModified()-o2.lastModified();
                return l>0?1:-1;//升序
                //return l>0?-1:1;//降序
            }
        });
        for (File file1 : files1) {
            System.out.println(file1.getName());
        }
//如果是集合是基本类型的可以直接sort;
        List<Integer> integers = Ints.asList(lius);
        integers.forEach(System.out::println);//原数组
        Collections.sort(integers);
        integers.forEach(System.out::println);//升序
        Collections.reverse(integers);
        integers.forEach(System.out::println);//降序

总结:

数组的排序&集合的排序
两者的共性:对引用类型进行排序需要Comparator来处理,使用lambda更方便;对基本类型可以直接使用;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值