数组的反转
数组的反转:数组中的元素颠倒顺序,例如:原始数组为1,2,3,4,5数组封装之后为5,4,3,2,1
思路:本质是考察交换两个变量的值
- 实现反转,就需要将数组最远端的元素和最近端位置互换
- 定义两个变量,保存数组的最小索引和数组的最大索引
- 让两个索引上的元素交换位置
- 最小的索引变量++,最大索引变量--,再次交换位置
- 最小索引超过了最大索引,数组反转结束
//准备一个需要反转的数组
int[] arr = {1,2,3,4,5,6}
//定义两个索引变量,一个索引变量指向最小索引,一个索引变量指向最大索引
int min = 0;
int max = arr.length-1;
//遍历数组,让两个索引变量产生变化
min++;
max--;
条件min<max;
//交换最小索引元素和最大索引元素;需要定义第三方元素
int temp = 0;
temp = arr[min];//把最小的索引元素赋值给第三方变量
arr[min] = arr[max];//把最大的索引元素赋值给最小的索引元素
arr[max] = temp;//把第三方变量的赋值给最大索引的元素
public static void main(String[] args){
int[] arr = {1,2,3,4,5,6};
//遍历数组,让两个索引变量产生变化
//遍历数组 for
for(int min = 0,int max = arr.length-1;min < max;min++,max--){
int temp = 0;
temp = arr[min];//把最小的索引元素赋值给第三方变量
arr[min] = arr[max];//把最大的索引元素赋值给最小的索引元素
arr[max] = temp;//把第三方变量的赋值给最大索引的元素
}
//查看反转之后的数组内容 遍历数组
for(int i = 0;i <= arr.length-1;i++){
System.out.println(arr[i]);
}
//第二种思路
int[] arr = {1,2,3,4,5,6};
//遍历数组
for(int i = 0;i < arr.length/2;i++){
//交换变量
int temp = 0;
temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
}
二维数组
定义方式:和一维数组是一样的,也有三种方式
方式一:
数组的数据类型[][] 数组名称 = new 数组的数组类型[长度1][长度2];
长度1 不可省略,代表 该二维数组里面存储的元素个数
长度2 可以省略,代表该二维数组里面的元素(数组里面的元素个数),而且它里面的数组元素个数一样
如: int[][] arr = new int[3][2];
长度3------》该arr数组里面有3 个元素(数组)
长度2----=-》该arr数组里面的每个数字元素都有两个元素
相当于-----》int[][] arr = {{0,0},{0,0},{0,0}};
方式二:
数组的数据类型[][] 数组名称 = new 数组的数据类型[][]{{元素1,元素2....},{元素1,元素2,元素3....},{元素1,元素2,元素3....}....}
方式三:
数组的数据类型[][] 数组名称 = {{元素1,元素2...},{元素1,元素2,...},{元素1,元素2,元素3...}.....}
二维数组元素访问方式
借助于【索引】
格式:
数组名称[索引]---->访问的是二维数组的元素
//访问二维当中的一维数组里面的元素
数组名称[一维数组的索引值][一维数组里面的元素索引值]
如:int[][] arr = {{10,20,50},{30,40,80},{15,100}};
//访问arr 数组当中的10元素
arr[0][0]=10;
// 访问arr数组的80元素
arr[1][2] = 80