forked from Speiger/Primitive-Collections
35 lines
833 B
Plaintext
35 lines
833 B
Plaintext
package speiger.src.collections.PACKAGE.collections;
|
|
|
|
#if !TYPE_OBJECT
|
|
import speiger.src.collections.objects.collections.ObjectBidirectionalIterator;
|
|
|
|
public interface BI_ITERATOR KEY_GENERIC_TYPE extends ITERATOR KEY_GENERIC_TYPE, ObjectBidirectionalIterator<CLASS_TYPE>
|
|
#else
|
|
public interface BI_ITERATOR KEY_GENERIC_TYPE extends ITERATOR KEY_GENERIC_TYPE
|
|
#endif
|
|
{
|
|
public boolean hasPrevious();
|
|
|
|
public KEY_TYPE PREVIOUS();
|
|
|
|
#if !TYPE_OBJECT
|
|
@Override
|
|
@Deprecated
|
|
public default CLASS_TYPE previous() {
|
|
return KEY_TO_OBJ(PREVIOUS());
|
|
}
|
|
|
|
@Override
|
|
default int skip(int amount)
|
|
{
|
|
return ITERATOR.super.skip(amount);
|
|
}
|
|
|
|
#endif
|
|
public default int back(int amount) {
|
|
if(amount < 0) throw new IllegalStateException("Can't go forward");
|
|
int i = 0;
|
|
for(;i<amount && hasPrevious();previous(),i++);
|
|
return i;
|
|
}
|
|
} |