一、数组
1. 数组的初始化
1)什么是数组的初始化
Java中的数组必须先初始化,然后才能使用。
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
2)初始化的分类:
a:动态初始化: 只指定长度,由系统给出初始化值
b:静态初始化: 给出初始化值,由系统决定长度
注意事项: 这两种方式,只能使用一种,不能进行动静结合
3)动态初始化的格式:
数据类型[] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数。
4)静态初始化的格式:
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
举例: int[] arr = new int[]{1,2,3};
简化格式:
数据类型[] 数组名 = {元素1,元素2,…};
举例: int[] arr = {1,2,3};
2.数组的相关操作
1)数组的遍历
数组的遍历,我们一般使用for循环来实现
for(int i = 0;i < arr.length;i++){
System.out.println(arr[ i ]);
}
2)数组求最值
public class Max{
public static void main(String[] args){
//定义数组,int数组
int[] arr = {1,2,3,4,5};
//定义变量,记录数组中0索引上的元素
int max = arr[0];
//遍历数组,获取所有的元素,和变量max比较
for(int i = 1; i < arr.length ; i++){
if(max < arr[i]){
//较大的数组的元素,赋值给max
max = arr[i];
}
}
//遍历完成,变量max,就是数组最大值
System.out.println(max);
}
}
3)数组的反转
for (int i = arr.length - 1;i >= 0;i--){
System.out.println(arr[ i ]);
}
4)查表法
根据键盘录入索引,查找对应星期
import java.util.Scanner;
public class MyTest2 {
public static void main(String[] args) {
String[] arr = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"};
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个星期:");
String s = scanner.nextLine();
int index = getIndex(s, arr);
System.out.println("索引为:"+index);
}
private static int getIndex(String s, String[] arr) {
int i;
for (i = 0; i < arr.length; i++) {
if (arr[i].equals(s))
return i;
}
return -1;
}
}
3.二维数组
二维数组格式1
数据类型[][] 变量名 = new 数据类型[m][n];
m表示这个二维数组有多少个一维数组 必须写上
n表示每一个一维数组的元素个数 可选
举例:
int[][] arr = new int[3][2];
定义了一个二维数组arr
这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2]
每个一维数组有2个元素,可以通过arr[m][n]来获取
表示获取第m+1个一维数组的第n+1个元素
二维数组格式2
数据类型[][] 变量名 = new 数据类型[m][];
m表示这个二维数组有多少个一维数组
这一次没有直接给出一维数组的元素个数,可以动态的给出。
举例:
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[3];
arr[2] = new int[1];
二维数组格式3
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}…};
简化版:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
这个格式属于静态初始化:由我们指定具体的元素值,由系统给分配长度
举例:
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
int[][] arr = {{1,2,3},{5,6},{7}};**