public static Object[] objectArray( Iterable iter ) { if (iter instanceof Collection) { return objectArray((Collection)iter); } else { return objectArray(Lists.list(iter)); } }
@Universal public static <V> V[] sliceOf( V[] array, int startIndex, int endIndex ) { return slc(array, startIndex, endIndex); }
@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; }
@Test public void addArrayTest() { String[] fruit = array( "apple", "oranges" ); String[] veggies = array( "green beans", "broccoli" ); String[] food = add( fruit, veggies ); assertEquals( 4, len( food ) ); assertEquals( "apple", idx( food, 0 ) ); assertEquals( "oranges", idx( food, 1 ) ); assertEquals( "green beans", idx( food, 2 ) ); assertEquals( "broccoli", idx( food, 3 ) ); }
@Test public void sliceTest() { String[] fruit = array( "apple", "oranges", "pears", "grapes", "kiwi" ); String[] array2 = slc( fruit, 0, 2 ); assertArrayEquals( array( "apple", "oranges" ), array2 ); array2 = slc( fruit, 1 ); assertArrayEquals( array( "oranges", "pears", "grapes", "kiwi" ), array2 ); String[] array3 = slc( fruit, -3, -1 ); assertArrayEquals( array( "pears", "grapes" ), array3 ); String[] array4 = slc( fruit, -3 ); assertArrayEquals( array( "pears", "grapes", "kiwi" ), array4 ); String[] array5 = slcEnd( fruit, -3 ); assertArrayEquals( array( "apple", "oranges" ), array5 ); }
@Test public void insertTest2() { String[] fruit = array( "apple", "oranges", "pears", "grapes", "kiwi" ); fruit = insert( fruit, 0, "bacon" ); assertEquals( 6, len( fruit ) ); assertEquals( "bacon", idx( fruit, 0 ) ); assertEquals( "apple", idx( fruit, 1 ) ); assertEquals( "oranges", idx( fruit, 2 ) ); }
@Test public void basicTest() { String[] fruit = array( "apple", "oranges", "pears", "grapes", "kiwi" ); assertArrayEquals( fruit, copy( fruit ) ); assertTrue( in( "apple", fruit ) ); assertEquals( 5, len( fruit ) ); assertEquals( "pears", idx( fruit, 2 ) ); idx( fruit, 2, "bacon" ); assertEquals( "bacon", idx( fruit, 2 ) ); }
@Test public void compactTest() { String[] fruit = array( "apple", "oranges", null, "grapes", "kiwi" ); fruit = compact( fruit ); assertEquals( 4, len( fruit ) ); assertEquals( "apple", idx( fruit, 0 ) ); assertEquals( "oranges", idx( fruit, 1 ) ); assertEquals( "grapes", idx( fruit, 2 ) ); assertEquals( "kiwi", idx( fruit, 3 ) ); }
/** * Add a MapItemValue to the map. * @param miv map value item. */ @Override public void add( MapItemValue miv ) { if ( len >= items.length ) { items = Arry.grow(items); } items[ len ] = miv; len++; }
@Universal public static <V> V atIndex( final V[] array, int index ) { final int i = calculateIndex( array, index ); return array[ i ]; }
@Override public StackTraceElement[] getStackTrace() { if ( getRootCause() != null ) { return add(getRootCause().getStackTrace(), super.getStackTrace()); } else { return super.getStackTrace(); } }
public static int len(Object obj) { if (isArray(obj)) { return Arry.len(obj); } else if (obj instanceof CharSequence) { return ((CharSequence) obj).length(); } else if (obj instanceof Collection) { return ((Collection<?>) obj).size(); } else if (obj instanceof Map) { return ((Map<?, ?>) obj).size(); } else if (obj == null) { return 0; } else { return 1; } }
@Universal public static <V> V[] endSliceOf( V[] array, int endIndex ) { return slcEnd(array, endIndex); }
@Test public void testCreateFromString() { String[] split = StringScanner.splitByCharsNoneEmpty( TEST_STRING, '[', ',', '"', '\\', ':', ']', '/' ); String first = idx( split, 0 ); String second = idx( split, 1 ); String third = idx( split, 2 ); String fourth = idx( split, 3 ); String fifth = idx( split, 4 ); String sixth = idx( split, 5 ); String seventh = idx( split, 6 ); String last = idx( split, -1 ); assertEquals( "199984", first ); assertEquals( "1384795052823", second ); assertEquals( "127.0.0.1", third ); assertEquals( "51706", fourth ); assertEquals( "abc123", fifth ); assertEquals( "rickHigh", sixth ); assertEquals( "217.0.0.1", seventh ); assertEquals( "asdfasdf", last ); assertEquals( 12, len( split ) ); }