Aşağıdaki kodu göz önünde bulundurarak ve 4 HashSet
s başka bir yerde olduğu gerçeğini göz önünde bulundurarak.İkiden fazla HashSets arasındaki kesişimi nasıl hesaplarım?
Amacam, 4 HashSets uygulamasında yaygın olan tüm öğeleri içermektir.
Benim sorum şu ki, her şeyden önce doğru mu yapıyorum? İkincisi, eğer doğru yapıyorumsa, bunu yapmanın daha iyi bir yolu var mı? Eğer değilse, o zaman bu problem için ne gibi bir çözüm var?
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);
}
Bu yüzden 'retainAll() 'işlevini kullandığım her seferinde ilk kümeyi doldurmak için aşırı tepki gösteriyorum. Sadece bazı bilgilerin kaçırılmasından endişe ediyorum. – lonesome
Bir öğe gerçekten dört kümenin hepsinde ortaksa, eklemeye devam etmeniz gerekmez (bunu bir an düşünün). –
Yea, doğru görünüyor. – lonesome