Java中对数组进行升序或者降序排序
升序排列:
Java提供了Array.sort(int [] arr)函数对数组进行升序排列
package pack;
import java.util.Arrays;
public class testsort {
public static void main(String[] args) {
Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
Arrays.sort(a);
for(int arr:a) {
System.out.print(arr + " ");
}
}
}
降序排序:
1.利用Collections.reverseOrder()方法:
package pack;
import java.util.Arrays;
import java.util.Collections;
public class testsort {
public static void main(String[] args) {
//这里不能用int类型 要用Integer类型
Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
Arrays.sort(a, Collections.reverseOrder());
for(int arr:a) {
System.out.print(arr + " ");
}
}
}
2.实现Comparator接口的复写compare()方法:
package pack;
import java.util.Arrays;
import java.util.Comparator;
public class testsort {
public static void main(String[] args) {
//要改变默认的排列顺序,不能使用基本类型(int,double,char)
//要使用它们对应的类
Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
//定义一个自定义类MyComparator的对象
Comparator cp = new MyComparator();
Arrays.sort(a,cp);
for(int arr:a) {
System.out.print(arr + " ");
}
}
}
class MyComparator implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
//o1小于o2,返回正值;o1大于o2,返回负值
return o2 - o1;
//默认为:return o1 - o2;
//颠倒一下,就实现降序排序了
}
}
总结:
总的来说,降序排序的第一种方法和第二种方法差别不大,都不能使用基本类型,要使用泛型。
Java的基本类型主要分为整数型,浮点型,字符型,布尔型。
整数型:byte,short,int,long;
浮点型:float,double
布尔型:boolean
字符型:char
相关文章:
彻底让你明白 Integer 类和 int 基本数据类型的区别:
https://blog.csdn.net/teacher_lee_zzsxt/article/details/79230501
Java泛型详解:和Class的使用。泛型类,泛型方法的详细使用实例