对普通数组进行排序
使用 Arrays.sort()方法对基本数据类型数组(例如 int、long或者 String)进行排序,
String[] tokens = {"A","C","B","E","D"};
System.out.println(Arrays.toString(tokens)); //[A, C, B, E, D]
Arrays.sort(tokens);
System.out.println(Arrays.toString(tokens)); //[A, B, C, D, E]
对数组进行逆序排序
使用 Arrays.sort(arr,Collections.reverseOrder())对数组进行逆序排序。
String[] tokens = {"A","C","B","E","D"};
System.out.println(Arrays.toString(tokens)); //[A, C, B, E, D]
Arrays.sort(tokens, Collections.reverseOrder());
System.out.println(Arrays.toString(tokens)); //[E, D, C, B, A]
之路教程 https://onitr oad .com
Java对对象数组进行排序
使用 Arrays.sort()方法对对象数组进行排序。
对象必须实现“Comparable”接口,这将决定它们的排序顺序。
- 数组中的所有元素都必须实现 Comparable 接口。
- 数组中的所有元素必须相互比较,并且在比较时不得抛出“ClassCastException”。
- 相等的元素(基于比较逻辑)不会作为排序的结果重新排序;并将显示为它们在数组中的顺序。
- 使用稳定、自适应、迭代的“合并排序”,可提供更好的性能。
示例: 根据员工“id”字段对数组进行排序。
import java.util.Arrays;
import java.util.Random;
public class Main
{
public static void main(String[] args)
{
Employee[] employees = getEmployees();
System.out.println(Arrays.toString(employees)); //Unsorted array
Arrays.sort(employees);
System.out.println(Arrays.toString(employees)); //Sorted array
}
//Some method which return array of employees in random order
private static Employee[] getEmployees()
{
Random rand = new Random(10);
Employee[] arr = new Employee[5];
for(int i = 0; i < 5; i++) {
Employee e = new Employee();
e.setId(rand.nextInt(100));
arr[i] = e;
}
return arr;
}
}
Employee类必须实现 Comparable接口,默认情况下,按升序排序。
public class Employee {
String id;
String firstName;
String lastName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public String toString() {
return "Employee [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + "]";
}
}
日期:2020-09-17 00:09:26 来源:oir作者:oir
