mirror of
https://github.com/corda/corda.git
synced 2025-06-14 05:08:18 +00:00
Implement the Arrays#copyOf family
... as introduced in Java 6. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
@ -10,6 +10,8 @@
|
|||||||
|
|
||||||
package java.util;
|
package java.util;
|
||||||
|
|
||||||
|
import java.lang.reflect.Array;
|
||||||
|
|
||||||
public class Arrays {
|
public class Arrays {
|
||||||
private Arrays() { }
|
private Arrays() { }
|
||||||
|
|
||||||
@ -348,4 +350,76 @@ public class Arrays {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean[] copyOf(boolean[] array, int newLength) {
|
||||||
|
boolean[] result = new boolean[newLength];
|
||||||
|
int length = array.length > newLength ? newLength : array.length;
|
||||||
|
System.arraycopy(array, 0, result, 0, length);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] copyOf(byte[] array, int newLength) {
|
||||||
|
byte[] result = new byte[newLength];
|
||||||
|
int length = array.length > newLength ? newLength : array.length;
|
||||||
|
System.arraycopy(array, 0, result, 0, length);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static char[] copyOf(char[] array, int newLength) {
|
||||||
|
char[] result = new char[newLength];
|
||||||
|
int length = array.length > newLength ? newLength : array.length;
|
||||||
|
System.arraycopy(array, 0, result, 0, length);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static double[] copyOf(double[] array, int newLength) {
|
||||||
|
double[] result = new double[newLength];
|
||||||
|
int length = array.length > newLength ? newLength : array.length;
|
||||||
|
System.arraycopy(array, 0, result, 0, length);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float[] copyOf(float[] array, int newLength) {
|
||||||
|
float[] result = new float[newLength];
|
||||||
|
int length = array.length > newLength ? newLength : array.length;
|
||||||
|
System.arraycopy(array, 0, result, 0, length);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int[] copyOf(int[] array, int newLength) {
|
||||||
|
int[] result = new int[newLength];
|
||||||
|
int length = array.length > newLength ? newLength : array.length;
|
||||||
|
System.arraycopy(array, 0, result, 0, length);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long[] copyOf(long[] array, int newLength) {
|
||||||
|
long[] result = new long[newLength];
|
||||||
|
int length = array.length > newLength ? newLength : array.length;
|
||||||
|
System.arraycopy(array, 0, result, 0, length);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static short[] copyOf(short[] array, int newLength) {
|
||||||
|
short[] result = new short[newLength];
|
||||||
|
int length = array.length > newLength ? newLength : array.length;
|
||||||
|
System.arraycopy(array, 0, result, 0, length);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> T[] copyOf(T[] array, int newLength) {
|
||||||
|
Class<?> clazz = array.getClass().getComponentType();
|
||||||
|
T[] result = (T[])Array.newInstance(clazz, newLength);
|
||||||
|
int length = array.length > newLength ? newLength : array.length;
|
||||||
|
System.arraycopy(array, 0, result, 0, length);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T, U> T[] copyOf(U[] array, int newLength,
|
||||||
|
Class<? extends T[]> newType)
|
||||||
|
{
|
||||||
|
T[] result = (T[])Array.newInstance(newType.getComponentType(), newLength);
|
||||||
|
int length = array.length > newLength ? newLength : array.length;
|
||||||
|
System.arraycopy(array, 0, result, 0, length);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -130,6 +130,13 @@ public class Arrays {
|
|||||||
java.util.Arrays.hashCode((Object[])null);
|
java.util.Arrays.hashCode((Object[])null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{ String[] list = new String[] { "Hello", "World", "!" };
|
||||||
|
Object[] result = java.util.Arrays.copyOf(list, 2, Object[].class);
|
||||||
|
expect(list[1] == result[1]);
|
||||||
|
expect(result.length == 2);
|
||||||
|
expect(result.getClass().getComponentType() == Object.class);
|
||||||
|
}
|
||||||
|
|
||||||
testSort();
|
testSort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user