我有一个 string[] 动态大小
string[]
String[] a = {'','',....dynamic values}
因此大小将在运行时确定。我要分开了 String[] 一个固定的数组大小为1000说
String[]
String[] b = {first 1000 values of a} String[] c = {next set of 1000 values of a}
请帮我实现这个目标。
zfycwa2u1#
可以像这样使用arrays.copyofrange
String[] a = {"a","b","c","d","r","g","f","h", ...}; String[] b = Arrays.copyOfRange(a, 0, 1000, String[].class); String[] c = Arrays.copyOfRange(a, 1000, a.length, String[].class);
但是如果“a”的长度小于1000,它就会崩溃,所以你可以这样做
int range = (a.length < 1000) ? a.length : 1000; String[] b = Arrays.copyOfRange(a, 0, range, String[].class); String[] c = Arrays.copyOfRange(a, range, a.length, String[].class);
如果“a”的长度小于1000,则“b”的大小与“a”相同,因此如果希望始终保持大小为b1000,则必须用长度1000初始化“b”
String[] b = new String[1000]();
然后把它填在forcycle里
42fyovps2#
不要使用多个数组,而是将它们组合成一个二维数组。
int n = (int)Math.ceil(a.length/1000d); String str[][] = new String[n][1000]; //Two dimensional array int x=0; for(int i=0; i<n; i++) { for(int j=0; j<1000 && x<a.length; j++) { str[i][j] = a[i]; x++; } }
如果你愿意的话,你可以把二维数组分割成多个数组。
bfrts1fy3#
copyofrange(boolean[],int,int)第二个int可以大于数组的长度,并将回滚到该长度。
3条答案
按热度按时间zfycwa2u1#
可以像这样使用arrays.copyofrange
但是如果“a”的长度小于1000,它就会崩溃,所以你可以这样做
如果“a”的长度小于1000,则“b”的大小与“a”相同,因此如果希望始终保持大小为b1000,则必须用长度1000初始化“b”
然后把它填在forcycle里
42fyovps2#
不要使用多个数组,而是将它们组合成一个二维数组。
如果你愿意的话,你可以把二维数组分割成多个数组。
bfrts1fy3#
copyofrange(boolean[],int,int)第二个int可以大于数组的长度,并将回滚到该长度。