Union and intersection of java Sets

Mahozad :

What is the simplest way to make a union or an intersection of Sets in java? I've seen some strange solutions to this simple problem (e.g. manually iterating the two sets).

enter image description here enter image description here

Mahozad :

The simplest one-line solution is this:

set1.addAll(set2); // Union
set1.retainAll(set2); // Intersection

The above solution is destructive meaning that contents of the original set1 my change. If you don't want to touch your existing sets, create a new set:

Set<E> result = new HashSet<>(set1);
 // └─ your specific type
result.addAll(set2); // Union
result.retainAll(set2); // Intersection

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=458347&siteId=1