1. 定义/声明
里面存储的类型[] 数组名字;
int[][] array;
2. 初始化
-
静态 ----有长度 有元素
int[][] array = {{1,2},{3,4,5,6},{7,8,9}};
-
动态 ----只有长度 没有元素(默认)
int[][] array =new int[3][2]; //{{1,2},{3,4,5,6},{7,8,9}};
3. 元素访问
通过元素在数组中的位置 -- index
public class TestArrMulti{
public static void main(String[] args){
int[][] arrMulti = new int[][]{{1,2},{3,4,5,6},{7,8,9}};
//访问
//int value = arrMulti[0][0];
//System.out.println(value);
//遍历
/*for(int i=0;i<arrMulti.length;i++){
//int[] arr = arrMulti[i];
for(int j=0;j<arrMulti[i].length;j++){
int value = arrMulti[i][j];
System.out.print(value+"\t");
}
System.out.println();
}
*/
//增强for循环
for(int[] arr:arrMulti){
for(int value:arr){
System.out.print(value+"\t");
}
System.out.println();
}
}
}
4. 遍历/轮询
5. 引用类型(二维数组)在内存中的存储结构
二维数组内存结构详解
6. 练习题1
- 模拟班级同学每周换位置
import java.util.Scanner;
public class ChangeGroup{
public static void main(String[] args){
int[][] array = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
Scanner input = new Scanner(System.in);
System.out.println("请输入周数,我来告诉你交换后的结果");
int week = input.nextInt();
for(int i=1;i<=week%4;i++){
int[] temp = array[0];
array[0] = array[1];
array[1] = array[2];
array[2] = array[3];
array[3] = temp;
}
for(int[] arr:array){
for(int value:arr){
System.out.print(value+"\t");
}
System.out.println();
}
}
}
- 利用二维数组实现用户登录认证
import java.util.Scanner;
public class TwoDimensionArrToLogin{
public static void main(String[] args){
String[][] arr = new String[][]{{"张三","123"},{"李四","666"},{"java","888"}};
System.out.print("请输入账号:");
Scanner inputUser = new Scanner(System.in);
String user = inputUser.nextLine();
boolean flag = false;
for(int i=0;i<arr.length;i++){
//账号存在
if(arr[i][0].equals(user)){
System.out.print("请输入密码:");
Scanner inputPasswd = new Scanner(System.in);
String passwd = inputPasswd.nextLine();
//密码正确
if(arr[i][1].equals(passwd)){
System.out.print("登录成功!");
flag = true;
}//密码不正确
break;
}
}
//账号不存在
if(!flag){
System.out.print("用户名或者密码错误");
}
}
}
7. 知识点
main方法
public static void main(String[] args){
}
public 访问权限修饰符 公有的
static 特征修饰符 静态的 有且只有一份
void 方法执行完没有返回值 关键字
main 方法名字 主要的
主方法中的args参数 可否传递?
1.主方法不是我们调用的,JVM虚拟机启动的时候,虚拟机调用的
2.主方法里面有args参数,是一个String[]类型,我们是可以传递参数进去 给JVM
public class SayMain{
public static void main(String[] args){
System.out.println(args.length);
for(String value:args){
System.out.println(value);
}
}
}
D:\myproject\JavaProject\learn\demo
$ java SayMain 5 123 abc 康平汆 好好学习 java
6
5
123
abc
康平汆
好好学习
java
附 三维数组
int[][][] array = {{{1,2},{3,4}},{{},{}},{{},{}}};
int[][][] array = new int[3][2][2];
三个二维数组,每个二维数组里面有两个一维数组,每个一维数组里面有两个int元素