47 lines
1.3 KiB
Java
47 lines
1.3 KiB
Java
package collection;
|
|
|
|
public class SetFactory {
|
|
|
|
private SetFactory() { /* don't instantiate */ }
|
|
|
|
/**
|
|
* Returns the empty set.
|
|
*
|
|
* @param <T> the element type of the returned set.
|
|
* @return the empty set.
|
|
*/
|
|
static <T> Set<T> create() {
|
|
return new EmptySet<T>();
|
|
}
|
|
|
|
/**
|
|
* Returns the singleton set containing the specified element.
|
|
*
|
|
* @param element an element (must not be null)
|
|
* @param <T> the element type of the returned set.
|
|
* @return the singleton set containing the specified element.
|
|
*/
|
|
static <T> Set<T> create(T element) {
|
|
return new SingeltonSet<T>(element);
|
|
}
|
|
|
|
/**
|
|
* Returns a set containing the specified elements. The specified elements may contain equal elements.
|
|
*
|
|
* @param elems elements of the returned set (may contain equal elements)
|
|
* @param <T> the element type of the returned set.
|
|
* @return a set containing the specified elements.
|
|
*/
|
|
static <T> Set<T> create(T... elems) {
|
|
if (elems.length == 0) return create();
|
|
if (elems.length == 1) return create(elems[0]);
|
|
Set<T> result = create();
|
|
|
|
for (T t : elems) {
|
|
result = result.add(t);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|