1. Array lengths are equal
Assume that nums and nums1 are two arrays of equal length.
(Recommended tutorial: java course)
1.1. Use nums = nums1;
before assignment
After assignment
When nums is created, a memory area is created in the heap for storage, and nums points to this memory address A. After nums1 is created, it points to B.
Now let nums = nums1; then the address (or reference) of num1 is assigned to num, so num also points to B. Both arrays point to the same memory area in the heap, and they share the data inside.
1.2, for loop
for (int i = 0; i < nums1.length; i++){ nums[i] = nums1[i]; }
Before the loop
nums = Arrays.copyOf(nums1,5);
nums = Arrays.copyOfRange(nums1,0,5);
System.arraycopy(originalArray, 0, targetArray, 0, originalArray.length);
赋值法成功for循环要注意越界问题,会报java.lang.ArrayIndexOutOfBoundsExceptionArrays类法成功注意越界问题,会报java.lang.ArrayIndexOutOfBoundsException
其他:
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
//思路:设置一个index,表示非0数的个数,循环遍历数组, // 如果不是0,将非0值移动到第index位置,然后index + 1 //遍历结束之后,index值表示为非0的个数,再次遍历,从index位置后的位置此时都应该为0 public void moveZeroes(int[] nums) { if (nums == null || nums.length <= 1) { return; } int index = 0; for (int i = 0; i < nums.length; i++) { if (nums[i] != 0) { nums[index] = nums[i]; index++; } } for (int i = index; i < nums.length; i++) { nums[i] = 0; } }
相关推荐:java入门
The above is the detailed content of How to copy an array in java. For more information, please follow other related articles on the PHP Chinese website!