public class ReverseArray {
int num1 = 10;
static int num2 = 20;
//静态方法中没有对象this,所以不能访问非静态成员
public static void show() {
//System.out.println(num1);
System.out.println();
}
//需求:定义静态方法,反转数组中的元素
public static void reverse(int[] arr) {
/*
这里只需要完成: 交换元素的动作就可以了.
假设数组中的元素值为: int[] arr = {11, 22, 33, 44, 55};
明确谁和谁进行交换:
第一个元素11 arr[0] 和 最后一个元素55 arr[4]交换
第二个元素22 arr[1] 和 倒数第二个元素44 arr[3] 交换
...
arr[i] arr[arr.length - 1 - i]
明确交换次数:
数组的长度/2
*/
for (int i = 0; i < arr.length / 2 ; i++) {
// arr[i] 和 arr[arr.length - 1 - i]进行交换
int temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------
测试程序
/*
static修饰成员方法
静态方法:
静态方法中没有对象this,所以不能访问非静态成员
静态方法的使用场景
如果某方法只访问静态成员, 并且不需要通过 对象名. 的形式调用, 就可以考虑将其定义为: 静态方法.
需求:定义静态方法,反转数组中的元素
核心:
1. 其实就是arr[i] 和 arr[arr.length - 1 - i] 在交换.
2. 循环次数只需要执行数组长度的一般就可以了, 也就是: arr.length/2
*/
public class Test {
public static void main(String[] args) {
//测试show()方法
ReverseArray.show();
//小需求: 交换变量.
int a = 10;
int b = 20;
int temp = a; //temp=10, a=10, b=20
a = b; //temp=10, a=20, b=20
b = temp; //temp=10, a=20, b=10
System.out.println("a: " + a);
System.out.println("b: " + b);
System.out.println("-------------------------");
int[] arr = {1, 6, 4, 5, 2, 3};
for (int i = 0; i <arr.length; i++) {
System.out.println(arr[i]);
}
System.out.println("-------------------------");
//调用方法, 反转数组
ReverseArray.reverse(arr);
for (int i = 0; i <arr.length; i++) {
System.out.println(arr[i]);
}
}
}
本文介绍了如何在Java中高效地交换数组内的元素,通过具体的测试程序展示了交换过程,包括使用临时变量、数学运算等方式。
415

被折叠的 条评论
为什么被折叠?



