public class ArrayReverse{
public static void main(String[] args){
//把数组的元素反转
//arr{1,2,3,4,5,6}->{6,5,4,3,2,1}
/*
思路分析:
1.把arr[0]和arr[5]进行交换{6,2,3,4,5,1}
2.把arr[1]和arr[4]进行交换{6,5,3,4,2,1}
3.把arr[2]和arr[3]进行交换
4.一共交换3次=arr.length / 2
5.每次交换时,对应下标是arr[i] 和arr[arr.length- 1 - i]
*/
int[] arr = {1,2,3,4,5,6};
int temp = 0;
int len = arr.length;
for(int i = 0;i < len / 2 ;i++){
temp = arr[len - 1 - i]; //使用临时变量存交换的一个值
arr[len - 1 - i] = arr[i]; //进行值交换
arr[i] = temp; //把临时存的值放到转换后的位置上
}
for(int i = 0;i < len;i++){
System.out.print(arr[i] + "\t");
}
System.out.println("\n");
System.out.println("变换后的数组为" + "\n");
//逆序赋值
//1.创建新的数组,大小为arr.length
//2.遍历数组arr,把每个元素拷贝到arr2的元素中(顺序拷贝)
int[] arr2 = new int[arr.length];
for(int i = arr.length - 1,j = 0;i >= 0;i--,j++){
arr2[j] = arr[i];
}
//3.当for结束后,arr2就是逆序后的数组
//4.把arr指向arr2的数据空间,此时arr原来的数据空间没有变量引用
arr = arr2;
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i] + "\t");
}
}
}
一维数组翻转
最新推荐文章于 2024-07-17 23:24:38 发布