Xin chào tôi có 2 danh sách chứa cùng một đối tượng. Tôi muốn thực hiện bất kỳ hoạt động nào như intercesct, union, khác biệt bằng cách sử dụng vị từ vì tôi không thể sử dụng bằng so sánh.java interscect, union, join, danh sách riêng biệt với vị từ
Ví dụ:
class Car{
public String id;
public String color;
public int hashcode(){
//id field is used for hashcode
}
public boolean equals(){
//id field is used for equals
}
}
Bây giờ tôi có hai danh sách của Ô tô. Tôi cần phải tìm các bản sao trong danh sách này nhưng không tìm thấy bằng id theo màu.
List<Car> carList1 = new ArrayList(){ new Car(1,blue), new Car(2,green)};
List<Car> carList2 = new ArrayList(){ new Car(1,silver), new Car(4,green)};
Tôi cần phải tìm đối tượng thứ hai từ carList1 (xe mới (2, màu xanh lá cây))
Danh sách Something tương tự như
Collection.intersect(carList1,carList2,comparator).
Trong C# Tôi sẽ sử dụng cho nó LINQ.
Ý anh là gì bởi "vị ngữ"? Nếu bạn muốn so sánh hai đối tượng để tìm nếu bạn bằng nhau, bạn có thể sử dụng giao diện Comparator trả về 0 nếu các đối tượng bằng nhau. Ở đây: http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html –
Không có phương pháp thư viện nào cho việc này. Bạn phải làm điều đó một mình. –
Câu hỏi tương tự: http://stackoverflow.com/questions/5793907/filtering-on-list-based-on-one-property-with-guava – simon