Bài 17: Sắp xếp các đối tượng trong ArrayList

1820

Trong thực tế khi lập trình, công việc sắp xếp 1 danh sách các đối tượng phải áp dụng rất nhiều. Ví dụ:
– Sắp xếp họ tên theo thứ tự a, b, c.
– Sắp xếp danh sách kết quả thi theo thứ tự từ cao xuống thấp.
– Sắp xếp tài liệu theo thứ tự mới trước, cũ sau.
– ..v.v..

– Việc sắp xếp một các đối tượng trong 1 ArrayList có thể có nhiều cách. Các bạn có thể áp dụng các phương pháp cơ bản, hoán đổi vị trí khi so sánh giống như việc sắp xếp các phần tử trong mảng đã dùng. Tuy nhiên, ở bài này mình sẽ giới thiệu 1 cách sắp xếp cực ngắn gọn, Java đã hỗ trợ sẵn, đó là phương thức sắp xếp Collection.sort.
– Mình sẽ nêu một vài ví dụ cụ thể để các bạn cùng tìm hiểu!
Ở các ví dụ này, các thuộc tính đối tượng mình để public cho ngắn gọn, chúng ta tập trung vào đoạn sắp xếp!

Ví dụ 1: Sắp xếp một danh sách các đối tượng sinh viên có 2 thuộc tính họ tên và điểm thi.
Các bạn chú ý đoạn này:

– Trên là cách sử dụng phương thức Collections.sort với danhSach là một đối tượng ArrayList, bên trong chứa danh sách các đối tượng SinhVien
– Phương thức public int compare(SinhVien sv1, SinhVien sv2) trả về kiểu giá trị nguyên. Đoạn code trên là giúp sắp xếp theo thứ tự giảm dần của số điểm từng đối tượng sinh viên. Nếu bạn muốn sắp xếp tăng dần thì đổi chỗ 1-1 cho nhau là được!

Toàn bộ code chương trình như sau

Ví dụ 2: Sắp xếp danh sách các đối tượng theo thứ tự trong bảng chữ cái! a b c