以下のコードと4 HashSet
が他の場所に配置されていることを考慮してください。3つ以上のHashSet間の交差を計算するにはどうすればよいですか?
私の目的は、すべての4つのHashSetに共通するすべての要素を含むことです。
私の質問はまず第一にそれは正しいことですか?第二に、私がそれを正しくやっているなら、それを行う良い方法はありますか?そうでない場合は、この問題に対してどのような解決策がありますか?
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
要素が実際に4つのセットすべてに共通する場合は、それを追加し続ける必要はありません(そのことについて少し考えてください)。 –
いや、そうだね。 – lonesome