在 C 语言中,我们可以通过以下代码更改数组的偏移量
int arr1a[] = arr+3;
这会将数组的基数更改 3 个索引。
在java中我们不能这样做。那么在 java 中解决这个问题的最佳实践是什么?
我们可以使用Arrays.copyOf()
,但这会增加复杂性。
Array.copyOf的复杂度是 O(n)。在内部它使用 System.arraycopy ,其复杂度为 O(n)
最佳答案
如果您不想复制数组,只需保留一个 offset
变量并将其添加到需要的位置即可:
int[] arr = { 1,2,3,5,8,13,21,34 }
// View of array: 5,8,13,21
int offset = 3, len = 4;
for (int i = 0; i < len; i++)
System.out.println(arr[i + offset]);
在C
中,数组不知道自己的大小,因此您必须自己跟踪它,但偏移更容易。
在 Java
中,数组知道自己的大小,但您必须跟踪所需的任何偏移量。
不管怎样,你必须自己做一些事情,只是其中的不同部分。这就是生活。
关于java - 更改java中数组的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194632/