Tôi mới sử dụng java và tôi không thực sự biết cách sử dụng giao diện so sánh. Tôi có một số ArrayList
trong số Item
s trong một lớp học Inventory
và một lớp Item
. Trong lớp Item
tôi đã viết:Cách sử dụng giao diện Comparator
public class Item implements Comparator<Item> {
//stuff
...
@Override
public int compare(Item a, Item b) {
if (a.getID().compareToIgnoreCase(b.getID())>0)
return 1;
else if (a.getID().compareToIgnoreCase(b.getID())<0)
return -1;
else
return 0;
}
}
Phương pháp getId() chỉ cung cấp cho các id, mà tôi phải sử dụng để alphabetize các mục. Tôi không chắc chắn nếu điều này là đúng, nó làm cho tôi đặt chú thích @Override
, tôi không chắc chắn lý do tại sao. Ngoài ra tôi đã viết một giao diện chỉ nói:
public interface Comparator<Item>
{
int compare(Item a, Item b);
}
Tôi không chắc chắn về điều đó. Ngoài ra, làm cách nào để triển khai phương thức này để sắp xếp danh sách được tạo trong lớp khoảng không quảng cáo?
Cảm ơn, nếu câu hỏi của tôi không có ý nghĩa hoặc cần làm rõ chỉ cho tôi biết.
Đợi, lớp 'Item' của bạn thực hiện' Comparator', mà theo định nghĩa của nó đòi hỏi một 'Item' chung để làm việc. Có vẻ như bạn không cần giao diện chung ở đây ... – Kroltan
Bạn có ý nghĩa gì với giao diện chung? – bassandguitar
Tôi không biết cách giải thích ... https://www.google.com/search?btnG=1&pws=0&q=generics+in+java – Kroltan