Java对数组排序

Java对数组排序

刷leetcode肯定会用到排序,在Java中对数组排序用Arrays,对集合类排序用Collections

工具类Arrays

数组排序用Arrays,Arrays专门针对int[]Object[]等基础数组

//基础类型排序。只支持升序
int[] ints = new int[]{8,3,6,5,4,7,9,1,2};
Arrays.sort(ints);//升序,向变降序必须转化为Integer然后再操作
//基础类型要使用降序,需要转换
//      通过流操作转成IntStream,然后排序,再在转回IntStream,通过toArray()获取int[]
//        ints = Arrays.stream(ints)
//                .boxed()
//                .sorted((o1,o2)->o2-o1)
//                .mapToInt(o->o)
//                .toArray();

double[] doubles = new double[]{8,3,6,5,4,7,9,1,2};
Arrays.sort(doubles);//升序

//引用类型排序,可根据自定义Comparator,或者实现接口Comparable来控制升降序
User[] users = new User[]{new User("zhangsan",11),new User("lisi",15)};
Arrays.sort(users, (o1, o2) -> o2.getAge()-o1.getAge());//根据自定义Comparator,降序

Object[] objects = new Object[]{new User("zhangsan",11),new User("lisi",15)};
Arrays.sort(objects);//User实现了Comparable,自定义为降序

工具类Collections

集合类的排序使用Collections。这里的排序只能针对有顺序性的集合类

//List的都能排序
List<Integer> arrayList = new ArrayList<>();
arrayList.add(5);
arrayList.add(2);
arrayList.add(7);
Collections.sort(arrayList); //升序

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(5);
linkedList.add(2);
linkedList.add(7);
Collections.sort(linkedList,(o1, o2) -> o2-o1); //降序
posted @   鸭梨的药丸哥  阅读(37)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示