各位大大好:请教一问题
java里有一数组 比如长度为A[32]
我想把A数组分成4个子数组,每个数组的长度为8
其中第一个数组值是A数组的A[0]-A[7]的的值
第2个数组的值是A数组的A[8]-A[15]的的值
依次类推完
想问问有什么好的方法没
我现在用的时候循环A数组,把A数组的值重新给新数组赋值一次。不知道还有更好的办法不
java里有一数组 比如长度为A[32]
我想把A数组分成4个子数组,每个数组的长度为8
其中第一个数组值是A数组的A[0]-A[7]的的值
第2个数组的值是A数组的A[8]-A[15]的的值
依次类推完
想问问有什么好的方法没
我现在用的时候循环A数组,把A数组的值重新给新数组赋值一次。不知道还有更好的办法不
但如果数组长度为512
要求32长度为一组,感觉用循环写起好烦琐,只是不知道和copyOfRange比较起来哪个效率更高些
最好的情况是这样:
当把512长度的数组传进一个函数,然后这个函数就返回被分成16个32长度的LIST出来,list里包含这16个新数组.
但如果数组长度为512
要求32长度为一组,感觉用循环写起好烦琐,只是不知道和copyOfRange比较起来哪个效率更高些
最好的情况是这样:
当把512长度的数组传进一个函数,然后这个函数就返回被分成16个32长度的LIST出来,list里包含这16个新数组.
Object[] a1 = new Object[8];
Object[] a2 = new Object[8];
Object[] a3 = new Object[8];
Object[] a4 = new Object[8];
System.arraycopy(original, 0, a1, 0, 8);
System.arraycopy(original, 8, a2, 0, 8);
System.arraycopy(original, 16, a3, 0, 8);
System.arraycopy(original, 24, a4, 0, 8);
可能是我多想了
想到每次都在一个循环里跑512次,总感觉怪怪的
arraycopy也许内部实现就是循环,只是系统把封装了
不管了,就这么说做吧
谢谢大家
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);arraycopy可能是调用C语言中的memcpy()函数呢?