数组
定义:一组(相同数据类型、固定长度、相同含义的)数据(集合)。
作用:可以存放多个同一类型的数据。
一维数组
定义及输出
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;
}
}
}
}