只获得Java中的一部分数组?
我有一个Java中的整数数组,我只想使用它的一部分。 我知道在Python中,你可以做这样的数组[索引:],它从索引返回数组。 在Java中是这样的。
使用java.util.Arrays类的copyOfRange
方法:
int[] newArray = Arrays.copyOfRange(oldArray, startIndex, endIndex);
startIndex是要复制的范围的初始索引,包括在内。
endIndex是要复制的范围的最终索引,不包括在内。 (这个索引可能位于数组之外)
例如:
//index 0 1 2 3 4 int[] arr = {10, 20, 30, 40, 50}; Arrays.copyOfRange(arr, 0, 2); // returns {10, 20} Arrays.copyOfRange(arr, 1, 4); // returns {20, 30, 40} Arrays.copyOfRange(arr, 2, arr.length); // returns {30, 40, 50} (length = 5)
你可以将你的数组作为一个列表包装,并请求它的一个子列表。
MyClass[] array = ...; List<MyClass> subArray = Arrays.asList(array).subList(index, array.length);
是的,你可以使用Arrays.copyOfRange
它的作用大致相同(请注意有一个副本:不要更改初始数组)。
如果您使用Java 1.6或更高版本,则可以使用Arrays.copyOfRange
复制数组的一部分。 从javadoc:
将指定数组的指定范围复制到新数组中。 范围(from)的初始索引必须位于零和
original.length
之间,包括0和original.length
。original[from]
的值被放置到副本的初始元素中(除非from == original.length
或from == to
)。 原始数组中后续元素的值被放置到副本中的后续元素中。 范围(to
)的最后一个索引(必须大于或等于from
)可能会大于original.length
,在这种情况下,false
将放置在索引大于或等于original.length - from
的副本的所有元素中original.length - from
。 返回的数组的长度将是to - from
。
这是一个简单的例子 :
/** * @Program that Copies the specified range of the specified array into a new * array. * CopyofRange8Array.java * Author:-RoseIndia Team * Date:-15-May-2008 */ import java.util.*; public class CopyofRange8Array { public static void main(String[] args) { //creating a short array Object T[]={"Rose","India","Net","Limited","Rohini"}; // //Copies the specified short array upto specified range, Object T1[] = Arrays.copyOfRange(T, 1,5); for (int i = 0; i < T1.length; i++) //Displaying the Copied short array upto specified range System.out.println(T1[i]); } }
查看copyOfRange: http ://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html#copyOfRange%28boolean[],%20int,%20int%29
你可以使用这样的东西: Arrays#copyOfRange
你可以试试:
System.arraycopy(sourceArray, 0, targetArray, 0, targetArray.length);// copies whole array // copies elements 1 and 2 from sourceArray to targetArray System.arraycopy(sourceArray, 1, targetArray, 0, 2);
查看系统的javadoc 。