JAVA中的排序函数包括java.util.Arrays包中的Arrays.sort();java.util.Collections包中的Collections.sort()

1.Arrays.sort()函数具有以下几种重载:

以static void sort​(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)为例说明该函数的使用方法
函数在输入的数组上排序,返回值为空
该函数参数列表含义:a表示输入数组;fromIndex表示数组a中需要排序部分的起始索引(包括该索引对应的值);toIndex表示数组a中需要排序部分的结束索引(不包括该索引对应的值);c表示自定义比较器(用户可以自己定义比较器用于对非数字数组排序)
例如:
public class Sort {public static Integer[] sort(Integer[] arr){Arrays.sort(arr, 0, arr.length, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1 - o2;}});return arr;}public static void main(String[] args) {Integer[] ints = {5, 3, 9, 8, 1, 2, 0, 3, 5};Integer[] n = sort(ints);for (int i:n) {System.out.print(i);System.out.print(',');}}
}
//排序结果为:0,1,2,3,3,5,5,8,9
改变Comparator中的(return o1 - o2;)为(return o2 - o1;),可以使排序为降序排序
Arrays.sort(arr, 0, arr.length, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2 - o1;}
});
//排序结果为:9,8,5,5,3,3,2,1,0
改变Comparator匿名类可以实现字符串、对象这些非数字的排序
2.Collections.sort()函数具有以下几种重载:

static <T> void sort​(List<T> list, Comparator<? super T> c)为例
函数在输入的列表上排序,返回值为空
该函数参数列表含义:a表示输入列表;c表示自定义比较器
例如:
public class CSort {public static List<Integer> sort(List<Integer> arr){Collections.sort(arr, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1 - o2;}});return arr;}public static void main(String[] args) {Integer[] m = new Integer[]{5,8,5,4,6,14,8,6};ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(m));System.out.println(sort(list));}
}
//排序结果为:[4, 5, 5, 6, 6, 8, 8, 14]
改变Comparator中的(return o1 - o2;)为(return o2 - o1;),可以使排序为降序排序
Collections.sort(arr, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2 - o1;}
});
//排序结果为:[14, 8, 8, 6, 6, 5, 5, 4]
改变Comparator匿名类可以实现字符串、对象这些非数字的排序
3.List中的sort​(Comparator<? super E> c)
例如
public class ListSort {public static List<Integer> sort(List<Integer> c){c.sort(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1 - o2;}});return c;}public static void main(String[] args) {Integer[] m = new Integer[]{5,8,5,4,6,14,8,6};ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(m));System.out.println(sort(list));}
}
//排序结果为:[4, 5, 5, 6, 6, 8, 8, 14]
改变Comparator中的(return o1 - o2;)为(return o2 - o1;),可以使排序为降序排序
c.sort(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2 - o1;}
});
//排序结果为:[14, 8, 8, 6, 6, 5, 5, 4]
改变Comparator匿名类可以实现字符串、对象这些非数字的排序
4.Arrays包下的parallelSort()函数用法

排序算法是一个并行排序合并,将数组分解为本身排序然后合并的子数组。 当子阵列长度达到最小粒度时,使用适当的Arrays.sort方法对子阵列进行排序。 如果指定数组的长度小于最小粒度,则使用适当的Arrays.sort方法进行排序。 该算法需要一个不大于原始数组大小的工作空间。 ForkJoin common pool用于执行任何并行任务。
例如以下的逆序排序:
public class ParallelSort {public static Integer[] sort(Integer[] c) {Arrays.parallelSort(c, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2 - o1;}});return c;}public static void main(String[] args) {Integer[] m = new Integer[]{5,8,5,4,6,14,8,6};Integer[] n = sort(m);for (int i:n) {System.out.print(i);System.out.print(',');}}
}
//排序结果为:14,8,8,6,6,5,5,4

JAVA中的排序函数相关推荐

  1. 详述Java中sort排序函数

    文章目录 前言 升序排序 降序排序 排序原理 前言 手写一个排序算法的效率是很慢的,当然这也不利于我们在比赛或者工程中的实战,如今几乎每个语言的标准库中都有排序算法,今天让我来给大家讲解一下Java语 ...

  2. oracle分类函数总结,oracle中分组排序函数用法

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  3. Java中的回调函数学习-深入浅出

    Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在c ...

  4. java中的string函数_java中string.trim()函数的作用实例及源码

    trim()的作用:去掉字符串首尾的空格. public static void main(String arg[]){ String a=" hello world "; Str ...

  5. Java中的split函数

    Java中的 split  函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回: String str="1234@abc"; String[] a = s ...

  6. java中自然排序和比较器排序

    这里所说到的Java中的排序并不是指插入排序.希尔排序.归并排序等具体的排序算法.而是指执行这些排序算法时,比较两个对象"大小"的比较操作.我们很容易理解整型的 i>j 这样 ...

  7. android studio插入数据表中没有_学Java能拿高薪吗 Java中常见排序算法有哪些

    学Java能拿高薪吗?Java中常见排序算法有哪些?作为老牌编程语言,Java拥有广阔的市场占有率,几乎90%以上的大中型互联网应用系统在服务端开发都会首选Java.为了加入到Java这一高薪行业,很 ...

  8. Java中获取当前函数名

    Java中获取当前函数名 博客分类: Java JavathreadJDKIDEA  有时候我们需要在程序中获取当前运行的函数名,如何简单的做到这点呢?我们可以用getStackTrace轻松搞定. ...

  9. java中的排序方法,Java中的排序比较方式:自然排序和比较器排序

    这里所说到的Java中的排序并不是指插入排序.希尔排序.归并排序等具体的排序算法.而是指执行这些排序算法时,比较两个对象"大小"的比较操作.我们很容易理解整型的 i>j 这样 ...

最新文章

  1. 2022-2028年现代农业背景下中国家庭农场深度调研及投资前景预测报告
  2. 33 篇顶会论文如何做到?北大施柏鑫:计算机视觉论文投稿到接收,不可不知的关键环节...
  3. 打印格式设置(SPAD)
  4. python3字符串操作_python3-字符串操作
  5. html的canvas标签用法,html5中关于canvas标签用法(绘图)
  6. 海量数据持久层解决方案_爱数AnyBackup重磅发布海量非结构化数据超可用解决方案...
  7. PS命令总结-实战经验
  8. 基于机器视觉的眼镜镜片轮廓提取
  9. 杭电数字电路课程设计——出租车计费器
  10. xp计算机内存条启动,xp系统出现“xx内存不能为read或written”怎么解决
  11. 怎么合并mp3音频文件?
  12. python mysqldb_python mysqldb 教程
  13. poj 1950 Dessert 深搜
  14. HashMap 中那些精妙绝伦的设计
  15. 一名优秀的Web前端开发工程师的成长之路:如何学习前端开发知识以及书籍推荐
  16. BMP位图转为RGB三通道图
  17. 【网络】访问控制列表 ACL
  18. 单纯形法的C语言实现
  19. 5分钟让免费的 Linux KVM 虚机管理跟 VMWare 一样好用
  20. MIPCMS-004高仿大前端D8自适应博客模版

热门文章

  1. 庄帅:马云怕的不是微信,怕的是微信“扫一扫”!
  2. ExtJs ButtonGroup按钮组
  3. 教你怎么玩indexedDB浏览器数据库,执行流程以及常见错误等等
  4. Unity Excel表格合并
  5. rar压缩包解密wps,rar压缩包复制打印限制怎么解除?
  6. x11vnc安装及使用
  7. 创维光伏:坚持科技创新,构建中国式现代化光伏生态体系
  8. ZDLJP型电子式精小型电动单座调节阀
  9. bootstrap 弹出包含iframe模态窗口的修改
  10. iOS xxx has conflicting provisioning settings.