blob: 095661929b860422e596d6e539ac96e7feff7397 [file] [log] [blame]
// © 2018 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
package com.ibm.icu.impl;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
/**
* A wrapper around java.util.Collection that implements java.util.Set. This class keeps a pointer to the
* Collection and does not persist any data on its own.
*
* Useful when you need a Set but creating a HashSet is too expensive.
*
* IMPORTANT: The elements of the Collection *must* be unique! This class does not check.
*/
public class CollectionSet<E> implements Set<E> {
private final Collection<E> data;
public CollectionSet(Collection<E> data) {
this.data = data;
}
@Override
public int size() {
return data.size();
}
@Override
public boolean isEmpty() {
return data.isEmpty();
}
@Override
public boolean contains(Object o) {
return data.contains(o);
}
@Override
public Iterator<E> iterator() {
return data.iterator();
}
@Override
public Object[] toArray() {
return data.toArray();
}
@Override
public <T> T[] toArray(T[] a) {
return data.toArray(a);
}
@Override
public boolean add(E e) {
return data.add(e);
}
@Override
public boolean remove(Object o) {
return data.remove(o);
}
@Override
public boolean containsAll(Collection<?> c) {
return data.containsAll(c);
}
@Override
public boolean addAll(Collection<? extends E> c) {
return data.addAll(c);
}
@Override
public boolean retainAll(Collection<?> c) {
return data.retainAll(c);
}
@Override
public boolean removeAll(Collection<?> c) {
return data.removeAll(c);
}
@Override
public void clear() {
data.clear();
}
}