Có, bạn có thể thực hiện sắp xếp của mình mà không cần tạo c omparator.
Có well-known trick để sắp xếp theo trường chính, phụ, đại học, v.v. Đầu tiên sắp xếp theo trường ít quan trọng nhất (đại học), trường tiếp theo quan trọng (phụ) và cuối cùng là trường quan trọng nhất (chính) . Nhưng thuật toán sắp xếp cần phải là ổn định để tính năng này hoạt động.
Nếu bạn đang sắp xếp một mảng, hãy sử dụng Arrays.sort()
. Nếu bạn đang phân loại List
, hãy sử dụng Collections.sort()
. Cả hai phương pháp này đều được đảm bảo ổn định.
Giả sử đối tượng so sánh chính của bạn được lưu trữ trong biến primaryComp
và phụ của bạn ở số secondaryComp
. Sau đó, đây là một số mã để thực hiện những gì bạn muốn:
Arrays.sort(mylist, secondaryComp); // This must come first!
Arrays.sort(mylist, primaryComp);
Rất tốt. Tôi không biết về mẹo đó! – Jack