当前,我有一个大小为N的数组。我正在尝试从数组中复制每X个字节的字节数。
例如,如果数组的大小为10,而我想要数组的大小为3。我将复制前3个元素,然后复制下3个和后1个元素。
目前,我正在使用以下算法:
int I = 0;
int sub = bytes.length;
int counter = 0;
for (I = 0; I < bytes.length; ++I) {
if (I % 3 == 0 && I != 0) {
NewArray[counter] = Arrays.copyOfRange(bytes, I - 3, I));
sub -= 3;
++counter;
}
}
NewArray[counter] = Arrays.copyOfRange(bytes, I - sub, I)); //Copy remainder.
有更有效或更体面的方式来做我想要的吗?这个算法看起来很糟糕= l
有什么想法可以改善或至少有提示吗?
最佳答案
那这个呢:
int x = 3; // chunk size
int len = bytes.length;
int counter = 0;
for (int i = 0; i < len - x + 1; i += x)
newArray[counter++] = Arrays.copyOfRange(bytes, i, i + x);
if (len % x != 0)
newArray[counter] = Arrays.copyOfRange(bytes, len - len % x, len);
关于java - 将数组拆分为X个长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19237371/