我有长度为 100 的 float[] 数组
。有什么方法可以选择(伪代码):
x = array[10:19];
要获取元素 10,11,12,...,19 而不复制到另一个缓冲区?我在一个移动应用程序中,我不想浪费空间或时间来做这件事。我宁愿只引用系统用于 array
的指针。
最佳答案
最有效的方法是使用 System.arrayCopy()
,这比使用循环手动复制更快、更有效。它将需要另一个数组,但是您使用的任何方法(除了将原始数组与几个代表要使用的偏移量的整数一起传递之外)都可以做到这一点,而且它相对便宜 - 内存消耗位通常是它引用的对象而不是数组本身,它们不会被复制。
关于java - 选择子数组而不复制到新缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20478363/