Java数组反转方式
作者:山川星河
这篇文章主要介绍了Java数组反转方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Java数组反转
//方法1
public class ArrayReverse{
public static void main(String[] args) {
//定义数组
int[] arr = {11, 22, 33, 44, 55, 66};
//1、把 arr[0] 和 arr[5] 进行交换 {66, 22, 33, 44, 55, 11}
//2、把 arr[1] 和 arr[4] 进行交换 {66, 55, 33, 44, 22, 11}
//3、把 arr[2] 和 arr[3] 进行交换 {66, 55, 44, 33, 22, 11}
//4、一共要交换 3 次 = arr.length / 2
//5、每次交换时,对应的下标是 arr[i] 和 arr[arr.length - 1 - i]
//代码
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;
}
}
}
//方法2
public class ArrayReverse{
public static void main(String[] args) {
//定义数组
int[] arr1 = {11, 22, 33, 44, 55, 66};
//使用逆序赋值方式
//1、先创建一个新的数组 arr2,大小 arr.length
//2、逆序遍历 arr,将每个元素拷贝到 arr2 的元素中(顺序拷贝)
//3、建议增加一个循环变量 j -> 0 -> 5
int[] arr2 = new int[arr1.length];
for(int i = arr1.length -1, j = 0; i>=0; i--, j++){
arr2[j] = arr1[i];
}
//4、当 for 循环结束后, arr2 就是一个逆序数组
//5、让 arr 指向 arr2 的数据空间,此时 arr 原来的数据空间就没用变量引用会被当做垃圾, 销毁
arr1 = arr2;
}
}
Java数组反转Reverse
三种反转数组的方式
public class ReverseArray {
public static void main(String[] args) {
int[] arr = {11,22,33,55,66,88};
printArray(arr);
reverse0(arr);
reverse1(arr);
reverse2(arr);
}
public static void reverse0(int[] arr) {
for(int i=0; i<arr.length/2; i++) {
int tem = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = tem;
}
printArray(arr);
}
public static void reverse1(int[] arr) {
for(int start=0,end=arr.length-1;start<end;start++,end--) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
printArray(arr);
}
public static void reverse2(int[] arr) {
int[] tem = new int[arr.length];
for(int i=0; i<arr.length; i++) {
tem[i] = arr[arr.length-1-i];
}
printArray(tem);
}
public static void printArray(int[] arr) {
for(int i=0; i<arr.length; i++) {
if(arr.length==1) {
System.out.println("["+arr[0]+"]");
}
else if(i==0) {
System.out.print("["+arr[0]+",");
}
else if(i==arr.length-1) {
System.out.println(arr[i]+"]");
}
else {
System.out.print(arr[i]+",");
}
}
}
}运行结果:
[11,22,33,55,66,88]
[88,66,55,33,22,11]
[11,22,33,55,66,88]
[88,66,55,33,22,11]
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
