-Added: JavaDoc for Map Interfaces. -Added: JavaDoc for Abstract Map/Collection/Set -Added: Ignore JavaDoc for tests/builder code. -Added: More JavaDoc for Arrays.
57 lines
1.4 KiB
Plaintext
57 lines
1.4 KiB
Plaintext
package speiger.src.collections.PACKAGE.sets;
|
|
|
|
import java.util.Iterator;
|
|
import java.util.Objects;
|
|
import java.util.Set;
|
|
|
|
import speiger.src.collections.PACKAGE.collections.ABSTRACT_COLLECTION;
|
|
import speiger.src.collections.PACKAGE.collections.ITERATOR;
|
|
|
|
/**
|
|
* Abstract Type Specific Set that reduces boxing/unboxing
|
|
* @Type(T)
|
|
*/
|
|
public abstract class ABSTRACT_SET KEY_GENERIC_TYPE extends ABSTRACT_COLLECTION KEY_GENERIC_TYPE implements SET KEY_GENERIC_TYPE
|
|
{
|
|
@Override
|
|
public abstract ITERATOR KEY_GENERIC_TYPE iterator();
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
int hashCode = 1;
|
|
ITERATOR KEY_GENERIC_TYPE i = iterator();
|
|
while(i.hasNext())
|
|
hashCode = 31 * hashCode + KEY_TO_HASH(i.NEXT());
|
|
return hashCode;
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
if (o == this)
|
|
return true;
|
|
if (!(o instanceof Set))
|
|
return false;
|
|
Set<?> l = (Set<?>)o;
|
|
if(l.size() != size()) return false;
|
|
#if !TYPE_OBJECT
|
|
if(l instanceof SET)
|
|
{
|
|
ITERATOR e1 = iterator();
|
|
ITERATOR e2 = ((SET)l).iterator();
|
|
while (e1.hasNext() && e2.hasNext()) {
|
|
if(!(KEY_EQUALS(e1.NEXT(), e2.NEXT())))
|
|
return false;
|
|
}
|
|
return !(e1.hasNext() || e2.hasNext());
|
|
}
|
|
#endif
|
|
Iterator<CLASS_TYPE> e1 = iterator();
|
|
Iterator<?> e2 = l.iterator();
|
|
while (e1.hasNext() && e2.hasNext()) {
|
|
if(!Objects.equals(e1.next(), e2.next()))
|
|
return false;
|
|
}
|
|
return !(e1.hasNext() || e2.hasNext());
|
|
}
|
|
}
|