Suppose you have two lists, and you want Union and Intersection of those two lists.
Example
Input:
list1: [1, 2, 3, 4]
list2: [3, 4, 5, 6]
union(list1, list2): [1, 2, 3, 4, 5, 6]
intersection(list1, list2): [3, 4]Solution
See the java code for multiple solutions:
public static List<Integer> getIntersection_1(List<Integer> l1, List<Integer> l2) {
return l1.stream().filter(l2::contains).collect(Collectors.toList());
}
public static List<Integer> getIntersection_2(List<Integer> l1, List<Integer> l2) {
Set<Integer> s1 = new HashSet<>(l1);
s1.retainAll(l2);
return new ArrayList<>(s1);
}
public static List<Integer> getIntersection_3(List<Integer> l1, List<Integer> l2) {
List<Integer> list = new ArrayList<Integer>();
for (Integer i : l1) {
if(l2.contains(i)) {
list.add(i);
}
}
return list;
}
public static List<Integer> getUnion_1(List<Integer> l1, List<Integer> l2) {
Set<Integer> result = new HashSet<Integer>();
result.addAll(l1);
result.addAll(l2);
return new ArrayList<Integer>(result);
}
public static List<Integer> getUnion_2(List<Integer> l1, List<Integer> l2) {
Set<Integer> s1 = new HashSet<>(l1);
s1.addAll(l2);
return new ArrayList<>(s1);
}












