Java排序方法sort的使用详解

时间:2025-04-01 19:59:31

对数组的排序:

//对数组排序
public void arraySort(){
int[] arr = {1,4,6,333,8,2};
(arr);//使用对象的sort方法
for(int i=0;i<;i++){
(arr[i]);
}
}

需要用到降序排列,首先想到了方法,但是默认是升序排列,
可以使用一下方式来达到降序的需求。

(a,());
1
但是存在一个问题,(a,())不支持基本类型(int,double,char等),如果是int型需要改成Integer,float要改成Float。
例如:

public static void main(String[] args) {
Integer[] a = { 2, 3, 4, 1, 0, 6, 5};
(a,());
int[] res = new int[];
for (int i = 0; i < ; i++) {
res[i] = (a[i]);
}
for (int j = 0; j < ; j++) {
(res[j] + " ");
}
}
————————————————
版权声明:本文为****博主「付石头_stone」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:/u010947534/article/details/96323757
对集合的排序:
import ;
import ;

public class ArraysDemo1 {
public static void main(String[] args) {
//int包装类对象数组,赋值
Integer[] arr = {12,15,32,16,20,25};
//传入引用类型对象arr,用匿名类实现Comparator接口,i1在前则为升序,反正降序
(arr, new Comparator() {
@Override
public int compare(Integer i1, Integer i2) {
int num = i2 - i1;
return num;
}
});
//打印数组
((arr));
}

————————————————
版权声明:本文为****博主「adolph_1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:/adolph_1/article/details/88921358
的reverseOrder
import .*;

public class Main {
public static void main(String[] args) {
// 注意这里是Integer,不是int
Integer[] arr={9,8,7,6,5,4,3,2,1};
(arr,());
for(int i:arr){
(i);
}
}

2.利用Comparator接口复写compare
import .*;

public class Main {
public static void main(String[] args) {
Integer[] arr={9,8,7,6,5,4,3,2,1};
Comparator cmp=new CMP();
(arr,cmp);
for(int i:arr){
(i);
}
}
}
class CMP implements Comparator{
@Override //可以去掉。作用是检查下面的方法名是不是父类中所有的
public int compare(Integer a,Integer b){
// 两种都可以,升序排序的话反过来就行
// return a-b<0?1:-1;
return b-a;
}
}

注意:如果需要改变默认的排列方式,不能使用基本类型(int,char等)定义变量,而应该用对应的类
转换成Integer[]
int[] nums = new int[]{1,6,4,55,61,3,5,8,4,2,8,15,61,33};
Integer[] temp = new Integer[];
for (int i = 0; i < ; i++) {
temp[i] = nums[i];
}
(temp,(i,j)->(j-i));
for (int i = 0; i < ; i++) {
nums[i] = temp[i];
}
((nums));
————————————————
版权声明:本文为****博主「mp-ui」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:/qq_45740349/article/details/110298747
//对list升序排序
public void listSort1(){
List list = new ArrayList();
(1);
(55);
(9);
(0);
(2);
(list);//使用Collections的sort方法
for(int a :list){
(a);
}
}
//对list降序排序
public void listSort2(){
List list = new ArrayList();
(1);
(55);
(9);
(0);
(2);
(list, new Comparator() {
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});//使用Collections的sort方法,并且重写compare方法
for(int a :list){
(a);
}
}
注意:Collections的sort方法默认是升序排列,如果需要降序排列时就需要重写conpare方法