考慮下面的代碼以及其他地方的人口。如何計算兩個以上HashSets之間的交集?
我的目標是包含所有4個HashSets中常見的所有元素。
我的問題是,首先,我做對了嗎?其次,如果我做得對,有沒有更好的方法來做到這一點?如果不是,那麼我對這個問題有什麼解決方案?
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);
}
所以我只是做了過度反應,每次使用'retainAll()'時填充第一組?我只是擔心,如果一些信息被遺漏。 – lonesome
如果一個元素真的對所有四個集合都是共同的,那麼你不需要繼續添加它(想一想)。 –
是的,似乎是正確的。 – lonesome