2012-05-11 61 views
5

Tôi có một Danh sách mảng các đối tượngPhân loại một danh sách mảng các đối tượng dựa trên một biến trong đối tượng

Các đối tượng trong danh sách Mảng là thông tin cho đại học gọi là 'ModuleInfo' (tất nhiên, bài tập, dateDue)

các dateDue đã được định dạng thành một YYYYMMDD số nguyên (Từ một lịch)

tôi đã xem xét một số trong những cách khác người đã làm điều này, nhưng tôi không thể có được đầu của tôi xung quanh những gì nó là tôi cần làm.

Lý tưởng nhất là vì tôi đã tuyên bố khi tạo Danh sách mảng sẽ chứa đối tượng 'ModuleInfo', tôi chỉ có thể Collection.sort (moduleDB, ModuleInfo.getDateDue) hoặc một thứ gì đó dọc theo các dòng đó. moduleDB là Danh sách Mảng

Bất kỳ trợ giúp nào cũng sẽ được đánh giá cao.

Trả lời

5

Nếu bạn muốn sử dụng Collections.sort(List list) để sắp xếp danh sách của mình, đối tượng của bạn phải triển khai giao diện Comparable.

public class ModuleInfo implements Comparable<ModuleInfo> { 

    /* Your implementation */ 

    public int compareTo(ModuleInfo info) { 
     if (this.dateDue < info.dateDue) { 
      return -1; 
     } else if (this.dateDue > info.dateDue) { 
      return 1; 
     } else { 
      return 0; 
     } 
    } 
} 

Sau đó gọi Collections.sort(moduleDB) nơi có kiểu ArrayList<ModuleInfo>.

p.s. Như đã đề cập trong bài trước, bạn cũng có thể yêu cầu lớp của bạn triển khai giao diện Comparator để đạt được kết quả giống hệt nhau.

+0

Cảm ơn vì điều này. Nó hoạt động! – Hypergiant

+0

Không sao, anh bạn. Vui mừng khi nghe nó! –

Các vấn đề liên quan