Xem xét mã bên dưới và thực tế là 4 HashSet
s được điền ở nơi khác.Làm cách nào để tính toán giao lộ giữa hơn hai HashSets?
Mục đích của tôi là chứa tất cả (các) phần tử phổ biến trong tất cả 4 HashSets.
Câu hỏi của tôi là trước hết, tôi có làm đúng không? Thứ hai, nếu tôi làm đúng, có cách nào tốt hơn để làm điều đó không? Nếu không, thì tôi có giải pháp nào cho vấn đề này?
static Set<String> one=new HashSet<>();
static Set<String> two=new HashSet<>();
static Set<String> three=new HashSet<>();
static Set<String> four=new HashSet<>();
private static void createIntersectionQrels() {
ArrayList<String> temp = new ArrayList<>();
Set<String> interQrels = new HashSet<>();
temp.addAll(one);
one.retainAll(two);
interQrels.addAll(one);
one.addAll(temp);
one.retainAll(three);
interQrels.addAll(one);
one.addAll(temp);
one.retainAll(four);
interQrels.addAll(one);
one.addAll(temp);
interQrels.retainAll(two);
interQrels.retainAll(three);
interQrels.retainAll(four);
}
Vì vậy, tôi chỉ đang làm quá phản ứng để cư trú tập đầu tiên mỗi khi tôi sử dụng 'retainAll()'? Tôi chỉ lo lắng rằng nếu một số thông tin bị bỏ qua. – lonesome
Nếu một yếu tố thực sự là phổ biến cho cả bốn bộ, thì bạn không cần phải tiếp tục thêm nó (suy nghĩ về điều đó trong một thời điểm). –
Yea, có vẻ đúng. – lonesome