Java中数组反转一般有两个思路,第一个是新建一个临时数组,把原来的数组内各值倒着给放进去。
public class ArrayReverse {
public static void main(String[] args) {
int[] nums = {1,2,4,54,464};
//思路一
//新建一个数组
int[] temp = new int[nums.length];
//把nums数组内的值反着放入temp;
for (int i = 0; i < nums.length; i++) {
temp[i] = nums[nums.length-1-i];
}
//引用指向
nums = temp;
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
}
}
//缺点:效率不高,需要遍历整个数组,时间复杂度和空间复杂度都不合适
但是这样的方法的缺点是效率不高,需要遍历整个数组,时间复杂度和空间复杂度都不合适。
第二种方法不需要新建临时数组,我们只需要把数组的第一个元素和最后一个交换,第二个元素和倒数第二个交换即可。以此类推,代码实现如下:
public class ArrayReverse2 {
public static void main(String[] args) {
int[] nums = {1,2,4,54,464};
//思路二
//首尾两两交换
for (int i = 0; i < nums.length/2; i++) {
int temp = nums[i];
nums[i] = nums[nums.length-1-i];
nums[nums.length-1-i] = temp;
}
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
}
}
第二种方法不需要遍历整个数组,只需要遍历到一半就可以了,在时间上节省很多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)