考题:把数组的元素内容反转,int[ ] arr ={11,22,33,44,55};变成int[ ] arr={55,44,33,22,11}
小伙伴们可以自己先思考再看解析:
方法1:
思想:两杯水交换的思想(有一杯装满水的杯子a和一杯装满水的杯子b,想想怎么将杯子a的水和杯子b的水互换?)
拿出第三个杯子c(空杯)
#这里遍历的次数为2
代码示意:
public class Test{
public static void main(String[] args){
int[] arr={11,22,33,44,55};
int temp=0;
for (int i=0;i<arr.length/2;i++){
temp = arr[arr.length-1-i];
arr[arr.length-1-i] =arr[i];
arr[i]=temp;
}
for (int j=0;j<arr.length;j++){
System.out.print(arr[j]+"\t");
}
}
}
图解:
方法2:
反向遍历再赋值
public class Test {
public static void main(String[] args) {
int[] arr = {11, 22, 33, 44, 55};
// 声明并初始化一个整型数组arr,包含5个元素
int[] arr2 = new int[arr.length];
// 声明并初始化一个整型数组arr2,其长度与arr相同
for (int i = arr.length - 1, j = 0; i >= 0; i--, j++) {
// 使用for循环,从arr的最后一个元素开始,逐个将元素复制到arr2
arr2[j] = arr[i];
}
// 将arr2的引用赋值给arr,此时arr和arr2指向同一个数组
arr = arr2;
// 输出arr数组中的元素
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
}
}
在将arr2
的引用赋值给arr
之后,arr
和arr2
指向了同一个数组,原来的arr的数组废弃了
好啦,今天的干货就到这啦~ 有什么疑问的小伙伴欢迎到评论区留言!