请各位大哥给个好办法,解决下这个java数组

gzasor 2009-10-09 09:31:39
各位大大好:请教一问题
java里有一数组 比如长度为A[32]
我想把A数组分成4个子数组,每个数组的长度为8
其中第一个数组值是A数组的A[0]-A[7]的的值
第2个数组的值是A数组的A[8]-A[15]的的值
依次类推完
想问问有什么好的方法没
我现在用的时候循环A数组,把A数组的值重新给新数组赋值一次。不知道还有更好的办法不
...全文
175 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzasor 2009-10-23
  • 打赏
  • 举报
回复
前段时间出差了,忘记结帖了
谢谢各位的热心回答
gzasor 2009-10-09
  • 打赏
  • 举报
回复
呵呵,学习了!
可能是我多想了
想到每次都在一个循环里跑512次,总感觉怪怪的
arraycopy也许内部实现就是循环,只是系统把封装了
不管了,就这么说做吧
谢谢大家
justinavril 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 softcarrier 的回复:]
Java codeObject[] original= {...};
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(or¡­
[/Quote]
如果再多的话 还是要循环 呵呵
softcarrier 2009-10-09
  • 打赏
  • 举报
回复
Object[] original = {...}; //就是那个长度为32的数组。
softcarrier 2009-10-09
  • 打赏
  • 举报
回复
Object[] original = {...};
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);
justinavril 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gzasor 的回复:]
如果是数组长度小,用循环没什么!
但如果数组长度为512
要求32长度为一组,感觉用循环写起好烦琐,只是不知道和copyOfRange比较起来哪个效率更高些
最好的情况是这样:
当把512长度的数组传进一个函数,然后这个函数就返回被分成16个32长度的LIST出来,list里包含这16个新数组.
[/Quote]
为啥512就繁琐了?循环存在的意义不就是为了处理这种情况的吗?

如果你认为这点循环就繁琐的话,那你也太看不起现在的cpu了。

追求高效也没说不让循环嘛,呵呵~~
gzasor 2009-10-09
  • 打赏
  • 举报
回复
如果是数组长度小,用循环没什么!
但如果数组长度为512
要求32长度为一组,感觉用循环写起好烦琐,只是不知道和copyOfRange比较起来哪个效率更高些
最好的情况是这样:
当把512长度的数组传进一个函数,然后这个函数就返回被分成16个32长度的LIST出来,list里包含这16个新数组.
gzasor 2009-10-09
  • 打赏
  • 举报
回复
如果是数组长度小,用循环没什么!
但如果数组长度为512
要求32长度为一组,感觉用循环写起好烦琐,只是不知道和copyOfRange比较起来哪个效率更高些
最好的情况是这样:
当把512长度的数组传进一个函数,然后这个函数就返回被分成16个32长度的LIST出来,list里包含这16个新数组.
amdgaming 2009-10-09
  • 打赏
  • 举报
回复
支持循环,呵呵
justinavril 2009-10-09
  • 打赏
  • 举报
回复
你要是不喜欢循环的话,用Arrays类下面的copyOfRange方法吧,我觉得循环没啥不好的...
24K純帥 2009-10-09
  • 打赏
  • 举报
回复
也差不了多少。。
wsxspring 2009-10-09
  • 打赏
  • 举报
回复
我写了一个算法,不一定是最好的解决方案,仅供参考:http://crest-boy.livejournal.com/12918.html
lz12366007 2009-10-09
  • 打赏
  • 举报
回复
帮你顶下。。。。。。。。
cat_cook 2009-10-09
  • 打赏
  • 举报
回复
牛皮就是吹滴 火车就是推滴。多了就只能用循环代替arraycopy。。。
yjfeng1986 2009-10-09
  • 打赏
  • 举报
回复

public static native void arraycopy(Object src,  int  srcPos,
Object dest, int destPos,
int length);


arraycopy可能是调用C语言中的memcpy()函数呢?
longtenggdf 2009-10-09
  • 打赏
  • 举报
回复
arraycopy也许内部实现就是循环,只是系统把封装了 ?是这样么?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧