Tìm hiểu về interface Comparable trong Java

Trong Java, để kiểm tra xem hai đối tượng có giống nhau hay không, chúng ta thường sử dụng phương thức equals() để làm điều này! Còn để so sánh và sắp xếp hai đối tượng trong một mảng hoặc một danh sách nào đó, chúng ta có thể sử dụng interface Comparable. Trong bài viết này, mình sẽ nói rõ hơn về interface này để các bạn hiểu rõ hơn nhé!

OK, bắt đầu nào các bạn.

Interface Comparable là một generic interface, được sử dụng để sắp xếp các đối tượng mà class của chúng hiện thực interface này.

Ví dụ như mình có một đối tượng Student như sau:

Bây giờ, mình muốn sắp xếp các đối tượng Student này trong một mảng nào đó thì điều đầu tiên mình cần phải làm là hiện thực interface Comparable cho đối tượng Student, như sau:

Khi hiện thực interface này, chúng ta bắt buộc phải định nghĩa phương thức:

để so sánh đối tượng này với đối tượng được truyền trong tham số của phương thức. Nội dung của phương thức do chúng ta tự định nghĩa nhưng bắt buộc phải trả về các giá trị như sau: số âm, 0 và số dương.

Số âm thì có nghĩa đối tượng này nhỏ hơn đối tượng được truyền trong tham số của phương thức, 0 có nghĩa là hai đối tượng bằng nhau còn số dương thì có nghĩa là đối tượng này lớn hơn.

Với đối tượng Student trong ví dụ trên thì mình có thể định nghĩa phương thức compareTo(Object other) như sau:

OK, về interface Comparable các bạn chỉ cần nắm những điều ở trên là đủ rồi đấy các bạn! Bây giờ, để thấy nó hoạt động như thế nào, mình sẽ sử dụng đối tượng Student ở trên để làm một ví dụ xem sao.

Trong ví dụ này, mình sẽ sử dụng đối tượng TreeSet để chứa vài đối tượng Student. Bởi vì, đối tượng TreeSet chứa các phần tử dưới dạng đã được sắp xếp, nên khi các bạn thêm mới các đối tượng Student ở trên thì nó sẽ tự động sắp xếp lại các đối tượng này luôn.

Code như sau:

Kết quả:

Tìm hiểu về Comparable interface

5/5 - (2 bình chọn)

Add Comment