对普通数组进行排序
使用 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