36 lines
1.2 KiB
Plaintext
36 lines
1.2 KiB
Plaintext
package speiger.src.collections.PACKAGE.utils;
|
|
|
|
import java.util.Objects;
|
|
import java.util.function.Consumer;
|
|
|
|
import speiger.src.collections.utils.IArray;
|
|
|
|
/**
|
|
* Type-Specific Helper class to get the underlying array of array implementations.
|
|
* @see speiger.src.collections.PACKAGE.lists.ARRAY_LIST
|
|
#if TYPE_OBJECT
|
|
*
|
|
* @param <T> the type of elements maintained by this Collection
|
|
#endif
|
|
*/
|
|
public interface IARRAY KEY_GENERIC_TYPE extends IArray
|
|
{
|
|
/**
|
|
* Provides the Underlying Array in the Implementation
|
|
* @return underlying Array
|
|
* @throws ClassCastException if the return type does not match the underlying array. (Only for Object Implementations)
|
|
*/
|
|
public KEY_TYPE[] elements();
|
|
|
|
/**
|
|
* Provides the Underlying Array in the Implementation. This function exists purely because of Synchronization wrappers to help run Synchronized Code
|
|
* @param action the action that handles the array
|
|
* @throws NullPointerException if action is null
|
|
* @throws ClassCastException if the return type does not match the underlying array. (Only for Object Implementations)
|
|
*/
|
|
public default void elements(Consumer<KEY_TYPE[]> action) {
|
|
Objects.requireNonNull(action);
|
|
action.accept(elements());
|
|
}
|
|
}
|