数组

定义:一组(相同数据类型、固定长度、相同含义的)数据(集合)。
作用:可以存放多个同一类型的数据。

一维数组

定义及输出
public class Demo01{

	public static void main(String[] args){
		//数组静态声明:元素类型[] 变量名 = {值1,值2,值3...值n};
		int[] arr1 = {160,170,180};
		System.out.println(arr1);//打印出来的是数组的内存地址

		//使用元素 数组名[下标],下标从0开始,最大值长度-1
		System.out.println(arr1[0]);
		System.out.println(arr1[1]);
		System.out.println(arr1[2]);

		//数组下标越界异常
		//ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
		//System.out.println(arr1[3]);
		
		//数组长度 数组名.length
		System.out.println("length="+arr1.length );
		
		//遍历数组
		for(int i = 0;i<arr1.length;i++){
			System.out.println(arr1[i]);
		}
		
	}
}
例子

两种方法输入输出人的身高

import java.util.Scanner;
public class Demo02{

	public static void main(String[] args){
		//数组静态声明:元素类型[] 变量名 = {值1,值2,值3...值n};
		//int[] arr1 = {160,170,180};
		
		//数组动态声明 元素类型[] 变量名= new 元素类型[数组长度]
		int[] arr2 = new int[5];

		Scanner scanner = new Scanner(System.in);
		
		/*
		System.out.println("请输入第1个人的身高:");
		arr2[0] = scanner.nextInt();

		System.out.println("请输入第2个人的身高:");
		arr2[1]  = scanner.nextInt();

		System.out.println("请输入第3个人的身高:");
		arr2[2]  = scanner.nextInt();
		*/

		for(int i=0;i<arr2.length;i++){
			System.out.println("请输入第"+(i+1)+"个人的身高:");
			arr2[i]  = scanner.nextInt();
		}

		
		//遍历数组
		for(int i = 0;i<arr2.length;i++){
			System.out.println("第"+(i+1)+"个人的身高是:"+arr2[i]);
		}
		
	}
}

动态初始化
数据类型 数组名【】 =new 数据类型【大小】
初始化
1、声明数组
语法: 数据类型 数组名[]; 或 数据类型[] 数组名;
2、创建数组
语法:数组名 =new 数据类型[大小]

二维数组

动态初始化

a初始化
1语法:类型[][]数组名 =new 数据类型[大小][大小]
例; int a[] [] =new int[2][3]

b初始化
1、先声明: 数据类型 数组名[][];
2、在定义(在开辟空间):数组名 =new 数据类型[大小][大小]
3、赋值(有默认值,比如int 类型就是0)

静态初始化

定义 数据类型 数组名[][] ={{值1,值2、、},{值1,值2、、},{值1,值2、、}}
使用即可定义[固定方式访问]

定义及输出
import java.util.Scanner;
public class Demo03{

	public static void main(String[] args){
		//静态	
		String[][] arr = {
                    {"王海宇","22","180","65"},
			        {"郝梓瑜","21","176","75"},
                    {"毛政华","21","170","70"}
                          };

		String[][] arr2 = new String[3][4];

		System.out.println(arr[0][0]);
		int len = arr.length;
		System.out.println(arr[len-1][arr[len-1].length-1]);
		System.out.println("序号\t姓名\t年龄\t身高\t体重");
	for(int i=0;i<arr.length;i++){
	    System.out.println(i+"\t"+arr[i][0]+"\t"+arr[i][1]+"\t"+arr[i][2]+"\t"+arr[i][3]);
	}

		
	for(int i = 0;i<arr.length;i++){
		for(int j = 0;j<arr[i].length;j++){
			System.out.println(arr[i][j]);
		}
		System.out.println("----------------------");
	}


		
	}
}

使用数组完成学生信息管理系统

import java.util.Scanner;
public class Demo{
	public static void main(String[] args){
	/*System.out.println("请输入人数");
		
        	
			int num = scanner.nextInt();*/
		Scanner scanner = new Scanner(System.in);
	String[] [] arr=new String[5][3];
		String[] stu1 ={"1001","xx","21"}; 
		arr[0]=stu1;
		String[] stu2 ={"1002","yy","21"};
		arr[1]=stu2;
	while(true){
		//显示菜单并选择
		System.out.println("欢迎使用学生管理系统");
		System.out.println("1.查看");
		System.out.println("2.增加");
		System.out.println("3.修改");
		System.out.println("4.删除");
		System.out.println("5.查询");
		System.out.println("6.退出");
		System.out.println("请选择");

		int choice = scanner.nextInt();
		switch(choice){
			case 1:System.out.println("查看");
			          System.out.println("学号\t姓名\t年龄");
				 for(int i=0;i<arr.length;i++){
				if(arr[i][0]==null){continue;}	
				System.out.println(arr[i][0]+"\t"+arr[i][1]+"\t"+arr[i][2]);
				}
	break;
			case 2:System.out.println("增加");
				int k=0;
				for(;k<arr.length;k++){
				if(arr[k][0]==null){
				System.out.println("请输入学生学号:");
			                arr[k][0] =scanner.next();
				System.out.println("请输入学生姓名:");
			                arr[k][1] =scanner.next();
				System.out.println("请输入学生年龄:");
			                arr[k][2] =scanner.next();
				break;
					}
					}
				if(k==arr.length){
					System.out.println("没有空位!");
						}
					break;
			case 3:System.out.println("修改");
				System.out.println("请输入要修改的学号:");
				String updatesno=scanner.next();
					int h=0;
					for(;h<arr.length;h++){
 					if( updatesno.equals(arr[h][0]) ){
					System.out.println("请输入新的学生学号:");
			                	arr[h][0] =scanner.next();
					System.out.println("请输入新的学生姓名:");
			                	arr[h][1] =scanner.next();
					System.out.println("请输入新的学生年龄:");
			                	arr[h][2] =scanner.next();
					break;
						}
							}
					if(h==arr.length){
					System.out.println("没有找到!");
					}
					break;
				
			case 4:System.out.println("删除");
				System.out.println("请输入要删除的学号:");
				String deletesno=scanner.next();
					int j=0;
					for(;j<arr.length;j++){
					if( deletesno.equals(arr[j][0]) ){
					arr[j][0]=null;
					arr[j][1]=null;
					arr[j][2]=null;
					break;
						}
							}
					if(j == arr.length){
					System.out.println("没有找到!");
					}
					break;
			case 5:	System.out.println("查询");  
				System.out.println("请输入你要查询的学号:");     
				String findsno =scanner.next();                                                     	
					int i=0;
					for(;i<arr.length;i++){
					
					if(findsno.equals(arr[i][0])){
					 System.out.println("学号"+arr[i][0]+"姓名"+arr[i][1]+"年龄"+arr[i][2]);
						break;	
							}		
					}
					if(i==arr.length){
						 System.out.println("没有找到");
							}
						break;
			case 6:System.exit(0);break;
			}
		}


        }
		}