Bạn nói không rõ ràng là lỗi gì, có thể là Product không có phương thức getcost()
hoặc getcost() trả về chuỗi, etc. Bạn cũng mắc một lỗi là phương thức method này cần trả về 3 giá trị là 0, 1, -1 tương đương với thể hiện bằng, lớn hơn, nhỏ hơn.
Comparator<Product> compareCost = new Comparator<>() {
@Override
public int compare(Product o1, Product o2) {
if (o1.getcost() < o2.getcost()) return 1;
if (o1.getcost() < o2.getcost()) return -1;
return 0;
}
};
Collections.sort(productList, compareCost);
Có thể dùng lambda expression để viết gọn lại và dùng phương thức compareTo() để so sánh (chuỗi hay số đều được);
Comparator<Product> compareCost = (Product o1, Product o2) -> {
return o1.getcost().compareTo(o2.getcost());
};
Collections.sort(productList, compareCost);