java-org.hwo/src/org/hwo/collections/LinkedListSet.java

89 lines
1.4 KiB
Java

package org.hwo.collections;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Set;
public class LinkedListSet<T> implements Set<T> {
private LinkedList<T> elements;
public LinkedListSet(){
this.elements = new LinkedList<>();
}
@Override
public boolean add(T e) {
if (elements.contains(e))
return false;
return elements.add(e);
}
@Override
public boolean addAll(Collection<? extends T> c) {
boolean changed = false;
for (T e: c) {
if (add(e))
changed = true;
}
return changed;
}
@Override
public void clear() {
elements.clear();
}
@Override
public boolean contains(Object o) {
return elements.contains(o);
}
@Override
public boolean containsAll(Collection<?> c) {
return elements.containsAll(c);
}
@Override
public boolean isEmpty() {
return elements.isEmpty();
}
@Override
public Iterator<T> iterator() {
return elements.iterator();
}
@Override
public boolean remove(Object o) {
return elements.remove(o);
}
@Override
public boolean removeAll(Collection<?> c) {
return elements.removeAll(c);
}
@Override
public boolean retainAll(Collection<?> c) {
return elements.retainAll(c);
}
@Override
public int size() {
return elements.size();
}
@Override
public Object[] toArray() {
return elements.toArray();
}
@Override
public <T> T[] toArray(T[] a) {
return elements.toArray(a);
}
}