forked from Speiger/Primitive-Collections
142 lines
3.2 KiB
Plaintext
142 lines
3.2 KiB
Plaintext
package speiger.src.collections.PACKAGE.lists;
|
|
|
|
import java.util.List;
|
|
#if !TYPE_OBJECT && !TYPE_BOOLEAN
|
|
import java.util.Objects;
|
|
import java.util.function.UNARY_OPERATOR;
|
|
import java.util.function.UnaryOperator;
|
|
#endif
|
|
|
|
import speiger.src.collections.PACKAGE.collections.COLLECTION;
|
|
|
|
public interface LIST KEY_GENERIC_TYPE extends COLLECTION KEY_GENERIC_TYPE, List<CLASS_TYPE>
|
|
{
|
|
#if !TYPE_OBJECT
|
|
@Override
|
|
public boolean add(KEY_TYPE e);
|
|
|
|
public void add(int index, KEY_TYPE e);
|
|
|
|
#endif
|
|
public boolean addAll(int index, COLLECTION KEY_GENERIC_TYPE c);
|
|
|
|
public boolean addAll(LIST KEY_GENERIC_TYPE c);
|
|
|
|
public boolean addAll(int index, LIST KEY_GENERIC_TYPE c);
|
|
|
|
#if !TYPE_OBJECT
|
|
public KEY_TYPE GET_KEY(int index);
|
|
|
|
public KEY_TYPE set(int index, KEY_TYPE e);
|
|
|
|
public KEY_TYPE REMOVE(int index);
|
|
|
|
public int indexOf(KEY_TYPE e);
|
|
|
|
public int lastIndexOf(KEY_TYPE e);
|
|
|
|
#if !TYPE_BOOLEAN
|
|
public default void REPLACE(UNARY_OPERATOR o) {
|
|
Objects.requireNonNull(o);
|
|
LIST_ITERATOR iter = listIterator();
|
|
while (iter.hasNext())
|
|
#if TYPE_BYTE || TYPE_SHORT || TYPE_CHAR || TYPE_FLOAT
|
|
iter.set((KEY_TYPE)o.APPLY(iter.NEXT()));
|
|
#else
|
|
iter.set(o.APPLY(iter.NEXT()));
|
|
#endif
|
|
}
|
|
|
|
#endif
|
|
#endif
|
|
public default void addElements(int from, KEY_TYPE[] a) { addElements(from, a, 0, a.length); }
|
|
|
|
public void addElements(int from, KEY_TYPE[] a, int offset, int length);
|
|
|
|
public default KEY_TYPE[] getElements(int from, KEY_TYPE[] a) { return getElements(from, a, 0, a.length); }
|
|
|
|
public KEY_TYPE[] getElements(int from, KEY_TYPE[] a, int offset, int length);
|
|
|
|
public void removeElements(int from, int to);
|
|
|
|
#if TYPE_OBJECT
|
|
public KEY_TYPE[] extractElements(int from, int to, Class<KEY_TYPE> type);
|
|
|
|
#else
|
|
public KEY_TYPE[] extractElements(int from, int to);
|
|
|
|
#endif
|
|
@Override
|
|
public LIST_ITERATOR KEY_GENERIC_TYPE listIterator();
|
|
|
|
@Override
|
|
public LIST_ITERATOR KEY_GENERIC_TYPE listIterator(int index);
|
|
|
|
@Override
|
|
public LIST KEY_GENERIC_TYPE subList(int from, int to);
|
|
|
|
public void size(int size);
|
|
|
|
#if !TYPE_OBJECT
|
|
@Override
|
|
@Deprecated
|
|
public default boolean add(CLASS_TYPE e) {
|
|
return COLLECTION.super.add(e);
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public default CLASS_TYPE get(int index) {
|
|
return KEY_TO_OBJ(GET_KEY(index));
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public default CLASS_TYPE set(int index, CLASS_TYPE e) {
|
|
return KEY_TO_OBJ(set(index, OBJ_TO_KEY(e)));
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public default int indexOf(Object o) {
|
|
return indexOf(CLASS_TO_KEY(o));
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public default int lastIndexOf(Object o) {
|
|
return indexOf(CLASS_TO_KEY(o));
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public default boolean contains(Object o) {
|
|
return COLLECTION.super.contains(o);
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public default boolean remove(Object o) {
|
|
return COLLECTION.super.remove(o);
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public default CLASS_TYPE remove(int index) {
|
|
return KEY_TO_OBJ(REMOVE(index));
|
|
}
|
|
|
|
#if !TYPE_BOOLEAN
|
|
@Override
|
|
@Deprecated
|
|
public default void replaceAll(UnaryOperator<CLASS_TYPE> o) {
|
|
Objects.requireNonNull(o);
|
|
#if TYPE_BYTE || TYPE_SHORT || TYPE_CHAR || TYPE_FLOAT
|
|
REPLACE(T -> OBJ_TO_KEY(o.apply(KEY_TO_OBJ((KEY_TYPE)T))));
|
|
#else
|
|
REPLACE(T -> OBJ_TO_KEY(o.apply(KEY_TO_OBJ(T))));
|
|
#endif
|
|
}
|
|
#endif
|
|
#endif
|
|
} |