forked from Speiger/Primitive-Collections
129 lines
2.7 KiB
Plaintext
129 lines
2.7 KiB
Plaintext
package speiger.src.collections.PACKAGE.collections;
|
|
|
|
#if !TYPE_OBJECT
|
|
import java.util.Collection;
|
|
#endif
|
|
import java.util.AbstractCollection;
|
|
#if !TYPE_OBJECT
|
|
import speiger.src.collections.PACKAGE.utils.ITERATORS;
|
|
#endif
|
|
|
|
public abstract class ABSTRACT_COLLECTION KEY_GENERIC_TYPE extends AbstractCollection<CLASS_TYPE> implements COLLECTION KEY_GENERIC_TYPE
|
|
{
|
|
@Override
|
|
public abstract ITERATOR KEY_GENERIC_TYPE iterator();
|
|
|
|
#if !TYPE_OBJECT
|
|
@Override
|
|
@Deprecated
|
|
public boolean add(CLASS_TYPE e) { return COLLECTION.super.add(e); }
|
|
|
|
@Override
|
|
public boolean addAll(COLLECTION c) {
|
|
boolean modified = false;
|
|
for(KEY_TYPE e : c) {
|
|
modified |= add(e);
|
|
}
|
|
return modified;
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public boolean contains(Object e) { return COLLECTION.super.contains(e); }
|
|
|
|
@Override
|
|
public boolean contains(KEY_TYPE e) {
|
|
for(KEY_TYPE entry : this) { if(entry == e) return true; }
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean containsAll(Collection<?> c)
|
|
{
|
|
return c instanceof COLLECTION ? containsAll((COLLECTION)c) : super.containsAll(c);
|
|
}
|
|
|
|
@Override
|
|
public boolean addAll(Collection<? extends CLASS_TYPE> c)
|
|
{
|
|
return c instanceof COLLECTION ? addAll((COLLECTION)c) : super.addAll(c);
|
|
}
|
|
|
|
@Override
|
|
public boolean removeAll(Collection<?> c)
|
|
{
|
|
return c instanceof COLLECTION ? removeAll((COLLECTION)c) : super.removeAll(c);
|
|
}
|
|
|
|
@Override
|
|
public boolean retainAll(Collection<?> c)
|
|
{
|
|
return c instanceof COLLECTION ? retainAll((COLLECTION)c) : super.retainAll(c);
|
|
}
|
|
|
|
@Override
|
|
public boolean containsAll(COLLECTION c) {
|
|
for(KEY_TYPE e : c)
|
|
if(!contains(e))
|
|
return false;
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean containsAny(COLLECTION c) {
|
|
for(KEY_TYPE e : c)
|
|
if(contains(e))
|
|
return true;
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public boolean remove(Object e) { return COLLECTION.super.remove(e); }
|
|
|
|
@Override
|
|
public boolean REMOVE_KEY(KEY_TYPE e) {
|
|
for(ITERATOR iter = iterator();iter.hasNext();) {
|
|
if(EQUALS(iter.NEXT(), e)) {
|
|
iter.remove();
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean removeAll(COLLECTION c) {
|
|
boolean modified = false;
|
|
for(ITERATOR iter = iterator();iter.hasNext();) {
|
|
if(c.contains(iter.NEXT())) {
|
|
iter.remove();
|
|
modified = true;
|
|
}
|
|
}
|
|
return modified;
|
|
}
|
|
|
|
@Override
|
|
public boolean retainAll(COLLECTION c) {
|
|
boolean modified = false;
|
|
for(ITERATOR iter = iterator();iter.hasNext();) {
|
|
if(!c.contains(iter.NEXT())) {
|
|
iter.remove();
|
|
modified = true;
|
|
}
|
|
}
|
|
return modified;
|
|
}
|
|
|
|
public KEY_TYPE[] TO_ARRAY() {
|
|
return TO_ARRAY(new KEY_TYPE[size()]);
|
|
}
|
|
|
|
public KEY_TYPE[] TO_ARRAY(KEY_TYPE[] a) {
|
|
if(a == null || a.length < size()) a = new KEY_TYPE[size()];
|
|
ITERATORS.unwrap(a, iterator());
|
|
return a;
|
|
}
|
|
#endif
|
|
} |