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); //降序
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)