使用 Arrays api 可以轻松完成对数组的排序。
import java.util.Arrays;
//creating an array with integers
int[] array = {7, 4, 2, 1, 19};
//this is the sorting part just one function ready to be used
Arrays.sort(array);
//prints [1, 2, 4, 7, 19]
System.out.println(Arrays.toString(array));
Java 排序字符串数组:
字符串不是数字数据,它定义了它自己的顺序,称为词典顺序,也称为字母顺序。
当我们使用 sort() 方法对 String 数组进行排序时,它会将数组排序为 Comparable 接口定义的自然顺序,如下所示:
增序排序
String[] names = {"John", "Steve", "Shane", "Adam", "Ben"};
System.out.println("String array before sorting : " + Arrays.toString(names));
Arrays.sort(names);
System.out.println("String array after sorting in ascending order : " + Arrays.toString(names));
降序排序
Arrays.sort(names, 0, names.length, Collections.reverseOrder());
System.out.println("String array after sorting in descending order : " + Arrays.toString(names));
对对象数组进行排序
为了对对象数组进行排序,所有元素都必须实现 Comparable 或者 Comparator 接口来定义排序的顺序。
我们可以使用 sort(Object[]) 方法按自然顺序对对象数组进行排序,但必须确保数组中的所有元素都必须实现 Comparable。
此外,它们也必须相互比较,例如 e1.compareTo(e2) 不得为数组中的任何元素 e1 和 e2 抛出 ClassCastException。
或者,我们可以使用 sort(T[], Comparator) 方法按自定义顺序对 Object 数组进行排序,如下例所示。
//How to Sort Object Array in Java using Comparator and Comparable
Course[] courses = new Course[4];
courses[0] = new Course(101, "Java", 200);
courses[1] = new Course(201, "Ruby", 300);
courses[2] = new Course(301, "Python", 400);
courses[3] = new Course(401, "Scala", 500);
System.out.println("Object array before sorting : " +
Arrays.toString(courses));
Arrays.sort(courses);
System.out.println("Object array after sorting in natural order : " + Arrays.toString(courses));
Arrays.sort(courses, new Course.PriceComparator());
System.out.println("Object array after sorting by price : " + Arrays.toString(courses));
Arrays.sort(courses, new Course.NameComparator());
System.out.println("Object array after sorting by name : " + Arrays.toString(courses));
日期:2020-06-02 22:15:19 来源:oir作者:oir
