import java.util.*;
public class CollectionUtils {
// List operations
public static <T> List<T> createList(T... elements) {
return new ArrayList<>(Arrays.asList(elements));
}
public static <T> void addAll(List<T> list, Collection<T> collection) {
list.addAll(collection);
}
public static <T> boolean contains(List<T> list, T element) {
return list.contains(element);
}
// Set operations
public static <T> Set<T> createSet(T... elements) {
return new HashSet<>(Arrays.asList(elements));
}
public static <T> Set<T> union(Set<T> set1, Set<T> set2) {
Set<T> result = new HashSet<>(set1);
result.addAll(set2);
return result;
}
public static <T> Set<T> intersection(Set<T> set1, Set<T> set2) {
Set<T> result = new HashSet<>(set1);
result.retainAll(set2);
return result;
}
// Map operations
public static <K, V> Map<K, V> createMap() {
return new HashMap<>();
}
public static <K, V> void putAll(Map<K, V> map, Map<K, V> other) {
map.putAll(other);
}
public static <K, V> V getOrDefault(Map<K, V> map, K key, V defaultValue) {
return map.getOrDefault(key, defaultValue);
}
// Queue operations
public static <T> Queue<T> createQueue() {
return new LinkedList<>();
}
public static <T> void enqueue(Queue<T> queue, T element) {
queue.offer(element);
}
public static <T> T dequeue(Queue<T> queue) {
return queue.poll();
}
}