java 7. 多维数组

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元素
posted @ 2022-04-05 19:07  我是一言  阅读(47)  评论(0编辑  收藏  举报