@Universal public static Object fastIndex( final Object array, int index ) { final int i = calculateIndex( array, index ); return Array.get(array, index); }
@Universal public static <V> V atIndex( final V[] array, int index ) { final int i = calculateIndex( array, index ); return array[ i ]; }
@Universal public static <V> void atIndex( final V[] array, int index, V value ) { final int i = calculateIndex( array, index ); array[ i ] = value; }
@Universal public static Object fastIndex( final Object array, int index ) { final int i = calculateIndex( array, index ); return Array.get(array, index); }
@Universal public static Object fastIndex( final Object array, int index ) { final int i = calculateIndex( array, index ); return Array.get(array, index); }
@Universal public static <V> void idx( final V[] array, int index, V value ) { final int i = calculateIndex( array, index ); array[ i ] = value; }
@Universal public static <V> V idx( final V[] array, int index ) { final int i = calculateIndex( array, index ); return array[ i ]; }
@Universal public static <V> V idx( final V[] array, int index ) { final int i = calculateIndex( array, index ); return array[ i ]; }
@Universal public static Object idx( final Object array, int index ) { final int i = calculateIndex( array, index ); return Array.get(array, i); }
@Universal public static <V> V atIndex( final V[] array, int index ) { final int i = calculateIndex( array, index ); return array[ i ]; }
@Universal public static Object idx( final Object array, int index ) { final int i = calculateIndex( array, index ); return Array.get(array, i); }
@Universal public static <V> void idx( final V[] array, int index, V value ) { final int i = calculateIndex( array, index ); array[ i ] = value; }
@Universal public static <V> void atIndex( final V[] array, int index, V value ) { final int i = calculateIndex( array, index ); array[ i ] = value; }
@Universal public static <V> void idx( final V[] array, int index, V value ) { final int i = calculateIndex( array, index ); array[ i ] = value; }
@Universal public static <V> void atIndex( final V[] array, int index, V value ) { final int i = calculateIndex( array, index ); array[ i ] = value; }
@Universal public static <V> V idx( final V[] array, int index ) { final int i = calculateIndex( array, index ); return array[ i ]; }
@Universal public static <V> V atIndex( final V[] array, int index ) { final int i = calculateIndex( array, index ); return array[ i ]; }
@Universal public static Object idx( final Object array, int index ) { final int i = calculateIndex( array, index ); return Array.get(array, i); }
@Universal public static <V> V[] slc( V[] array, int startIndex ) { final int start = calculateIndex( array, startIndex ); final int newLength = array.length - start; if ( newLength < 0 ) { throw new ArrayIndexOutOfBoundsException( String.format( "start index %d, length %d", startIndex, array.length ) ); } Object newArray = Array.newInstance( array.getClass().getComponentType(), newLength ); System.arraycopy( array, start, newArray, 0, newLength ); return ( V[] ) newArray; }
@Universal public static <V> V[] slc( V[] array, int startIndex, int endIndex ) { final int start = calculateIndex( array, startIndex ); final int end = calculateEndIndex( array, endIndex ); final int newLength = end - start; if ( newLength < 0 ) { throw new ArrayIndexOutOfBoundsException( String.format( "start index %d, end index %d, length %d", startIndex, endIndex, array.length ) ); } Object newArray = Array.newInstance( array.getClass().getComponentType(), newLength ); System.arraycopy( array, start, newArray, 0, newLength ); return ( V[] ) newArray; }