当前位置:   article > 正文

Java中sort函数的几种使用方法_java sort用法

java sort用法

Begin:

说到排序了话,很多大佬肯定都会,比如简单选择排序、冒泡排序、快速排序等等,估计我们也会想到C++中的sort吧,因为这个真的很实用,而且写起来也十分简短,但是吧,Java里的sort函数与C++里的sort函数的使用方法还是有点不同的。 

首先:sort函数的基本格式如下(默认排序为升序排序)

Arrays.sort(数组名,起始下标,终止下标);

①:(输入n个整型数据,将它们按照从小到大的顺序输出) 

  1. import java.util.*;
  2. public class Main
  3. {
  4. public static void main(String[] args)
  5. {
  6. Scanner input=new Scanner(System.in);
  7. while(input.hasNext())
  8. {
  9. int a[]=new int[101];
  10. int n=input.nextInt();
  11. for(int i=0;i<n;i++)
  12. a[i]=input.nextInt();
  13. Arrays.sort(a,0,n);//默认升序
  14. for(int i=0;i<n;i++)
  15. System.out.print(a[i]+" ");
  16. System.out.println();
  17. }
  18. input.close();
  19. }
  20. }

 ①:程序运行结果:

 

(大家注意一下,这种情况下输入的数据一直要是整型,如果是其他类型,就一定会报错!!!)

 

②:(输入n个浮点型数据,将它们按照从小到大的顺序输出)

  1. import java.util.*;
  2. public class Main
  3. {
  4. public static void main(String[] args)
  5. {
  6. Scanner input=new Scanner(System.in);
  7. while(input.hasNext())
  8. {
  9. double a[]=new double[101];
  10. int n=input.nextInt();
  11. for(int i=0;i<n;i++)
  12. a[i]=input.nextDouble();
  13. Arrays.sort(a,0,n);
  14. for(int i=0;i<n;i++)
  15. System.out.print(a[i]+" ");
  16. System.out.println();
  17. }
  18. input.close();
  19. }
  20. }

 ②:程序运行结果:

 

 

以上两种情况都是对数组进行全部数据的排序,那么我们如果想对数组进行局部排序,就可以这样写↓↓↓

Arrays.sort(a,0,3);

 只需要写上数组名,然后再加上排序区间的起始下标和终止下标就可以了,保证区间是左开右闭:[起始下标,终止下标) !

 

③:(如果一个数组在初始化的时候已经被赋值。则sort函数可以用另外一种格式)

  1. import java.util.*;
  2. public class Main
  3. {
  4. public static void main(String[] args)
  5. {
  6. Scanner input=new Scanner(System.in);
  7. int a[]= {5,4,3,2,1};
  8. Arrays.sort(a);
  9. int len=a.length;//如果数组中元素个数过多,数着比较麻烦,建议这样写
  10. for(int i=0;i<len;i++)
  11. System.out.print(a[i]+" ");
  12. System.out.println();
  13. input.close();
  14. }
  15. }

 ③:程序运行结果:

 

 以上三种情况都是升序排序,那么下面我们来说说降序排序!!!

 

 ④:(利用Java中sort函数中的cmp函数来实现自定义排序)

我们先来看看cmp函数的格式 

int compare(Object o1,Object o2);

我们可以看到,传入函数的是Java中的类(Java中没有结构体),这时,sort函数的格式变为

Arrays.sort(数组名,起始下标,终止下标,new cmp());

那么实现自定义排序的方法如下:↓↓↓

int compare(Object o1,Object o2) 返回一个基本类型的整型
如果要按照升序排序,
    则o1小于o2,返回-1(负数),相等返回0,o1大于o2返回1(正数)
如果要按照降序排序
    则o1小于o2,返回1(正数),相等返回0,o1大于o2返回-1(负数) 

 ④:程序代码:

  1. import java.util.*;
  2. class shu//创建类
  3. {
  4. int x;
  5. }
  6. class cmp implements Comparator<shu>
  7. {
  8. public int compare(shu a,shu b)//降序排序函数
  9. {
  10. if(a.x<b.x)
  11. return 1;
  12. else if(a.x==b.x)
  13. return 0;
  14. else
  15. return -1;
  16. }
  17. }
  18. public class Main
  19. {
  20. public static void main(String[] args)
  21. {
  22. Scanner input=new Scanner(System.in);
  23. while(input.hasNext())
  24. {
  25. shu a[]=new shu[101];//创建类数组
  26. int n=input.nextInt();
  27. for(int i=0;i<n;i++)
  28. {
  29. a[i]=new shu();//这个地方容易漏掉!!!
  30. a[i].x=input.nextInt();
  31. }
  32. Arrays.sort(a,0,n,new cmp());//new cmp()
  33. for(int i=0;i<n;i++)
  34. System.out.print(a[i].x+" ");
  35. System.out.println();
  36. }
  37. input.close();
  38. }
  39. }

④:程序运行结果:

 

 

以上就是我这个小水货对Java中sort函数的几种使用方法的总结,希望能帮助到大家!!! o(* ̄▽ ̄*)ブ   

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/67405
推荐阅读
相关标签
  

闽ICP备14008679号