JAVA基础-数组

数组

数组用来存储一组大小固定并且类型相同的数据,这些数据可以通过索引进行访问.

创建数组

声明一维数组

int a[];//声明一个整型数组

给数组分配空间

int[] array=new int[100];

当数组使用new分配存储空间后,数组中的元素会有默认初始值.其中:

  • 数值类型的数组初始值为0;
  • 布尔类型的为false;
  • 引用类型的则为null(空引用).例如,字符串String就是引用类型;
  • 字符型的为’\0’(字符串结束标识).
创建数组时的3个步骤:

(1)在栈中创建一个数组变量;
(2)在堆内存中给数组分配存储空间;
(3)初始化数组中的元素值(即给数组元素初始化一个相应数据类型的默认值).

初始化数组

初始化方式有两种:静态初始化和动态初始化

数组静态初始化

int[]a={1,2,3,4,5};
或者可以
int[]a=new int[]{1,2,3,4,5};

数组动态初始化

示例1:

int[]a=new int[2];
a[0]=1;
a[1]=2;
示例2:
int[]array=new int[10];
for(int i=0;i<10;i++){
array[i]=i+1;
}

foreach遍历数组

使用foreach循环遍历数组和集合元素时,无须获得数组和集合长度,也无须根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合的每个元素.
注意:当使用foreach循环输出数组和集合中的元素时,通常不要对循环变量进行赋值,虽然这种赋值在语法上是允许的,但没有太大的意义,而且极容易引起误会.
foreach(数据类型 变量名:数组名)
其中,foreach语句中的数据类型必须与数组的数据类型一致.

二维数组

语法:
数据类型[][]数组名;

/**
日期:2021.12.30
内容:声明数组
	数组初始化
	二维数组初始化
*/
public class book6{
	public static void main(String[] args){
		
//声明数组
		//声明一个整型数组a
		int[] a;
		//给数组a分配存储空间:10*4个字节
		a=new int[10];
		double[] b=new double[10];
		char[]c=new char[100];
		boolean[]d=new boolean[20];
		String[]str=new String[5];
		
		//输出各数组的数组名
		System.out.println(a);//输出数组对象的哈希码
		System.out.println(b);//输出数组对象的哈希码
		System.out.println(c);//输出字符数组中的内容
		System.out.println(d);//输出数组对象的哈希码
		System.out.println(str);//输出数组对象的哈希码
		System.out.println("************************");
		
		//输出个数组中第一个元素的值
		System.out.println(a[0]);
		System.out.println(b[0]);
		System.out.println(c[0]);
		System.out.println(d[0]);
		System.out.println(str[0]);
		System.out.println("************************");
		
		//输出各数组的长度
		System.out.println("a.length="+a.length);
		System.out.println("b.length="+b.length);
		System.out.println("c.length="+c.length);
		System.out.println("d.length="+d.length);
		System.out.println("str.length="+str.length);
		
//初始化数组
		//静态初始化
		int[] aa={5,7,20};
		int[]bb=new int[4];
		for(int i=0;i<bb.length;i++){
			b[i]=i+1;
		}
		System.out.println("数组aa中的元素是:");
		for(int i=0;i<aa.length;i++){
			System.out.print(aa[i]+" ");
		}
		System.out.println();
		
		//输出数组bb的长度
		System.out.println("数组bb的长度:"+bb.length);
		//输出bb数组中的元素
		System.out.println("数组bb中的元素是:");
		for(int i=0;i<bb.length;i++){
			System.out.print(bb[i]+" ");
		}
		System.out.println();
		
		//因为aa是int[]类型,bb也是int[]类型,所以可以将aa的值赋给bb
		//也就是让bb引用指向aa引用指向的数组
		bb=aa;
		//再次输出bb数组的长度
		System.out.println("bb数组的长度:"+bb.length);
		
//foreach遍历数组
		//定义初始化数组,使用静态初始化
		int[]aaa={5,7,20};
		//使用foreach语句遍历输出aaa数组中的元素
		System.out.println("aaa数组中的元素是:");
		for(int e:aaa){
			System.out.println(e);
		}
		
//二维数组
//创建二维数组并初始化
		int[][]aaaa={{1,2},{3,4},{5,6}};//静态初始化
		int[][]bbbb=new int[2][2];//动态初始化
		bbbb[0][0]=1;
		bbbb[0][1]=2;
		bbbb[1][0]=3;
		bbbb[1][1]=4;
		
//二维数组的使用
		int[][]ccc={{1,2,3},{4,5,6}};
		System.out.println("数组ccc一维长度:"+ccc.length);
		System.out.println("数组ccc的二维长度:"+ccc[0].length);
		System.out.println("数组ccc中的元素:");
		//使用双重循环嵌套进行输出
		for(int i=0;i<ccc.length;i++){
			for(int j=0;j<ccc[i].length;j++){
				System.out.print(ccc[i][j]+" ");
			}
			System.out.println();
		}
		System.out.println("------------------------");
		//二维数组动态初始化,一维和二维都指定长度
		int[][]cccc=new int[3][4];
		//使用嵌套的for循环进行初始化二维数组
		for(int i=0;i<cccc.length;i++){
			for(int j=0;j<cccc[i].length;j++){
				cccc[i][j]=i+j;
			}
		}
		System.out.println("数组cccc中的元素:");
		//使用嵌套的for循环进行输出
		for(int i=0;i<cccc.length;i++){
			for(int j=0;j<cccc[i].length;j++){
				System.out.print(cccc[i][j]+" ");
			}
			System.out.println();
		}
		System.out.println("---------------------------");
		//声明二维数组时,只给出一维长度
		int[][]dd=new int[2][];
		//二维长度不等
		dd[0]=new int[3];
		dd[1]=new int[4];
		//初始化
		for(int i=0;i<dd.length;i++){
			for(int j=0;j<dd[i].length;j++){
				dd[i][j]=i+j;
			}
		}
		System.out.println("数组d中的元素:");
		//使用嵌套的for循环输出
		for(int i=0;i<dd.length;i++){
			for(int j=0;j<dd[i].length;j++){
				System.out.print(dd[i][j]+" ");
			}
			System.out.println();
		}
		
		
	}
}

在这里插入图片描述

/**
日期:2021.12.31
内容:使用循环语句实现菜单驱动,当用户选择0时退出应用
*/
import java.util.Scanner;
public class MenuDriver{
	public static void main(String[] args){
		
		//建立一个从键盘接收数据的扫描器
		Scanner scanner=new Scanner(System.in);
		while(true){
			//输出菜单
			System.out.println("***********************");
			System.out.println("*1:数据采集 2:数据匹配*");
			System.out.println("*3:数据记录 4:数据显示*");
			System.out.println("*5:数据发送 6:退出应用*");
			System.out.println("***********************");
			//提示用户输入要操作的菜单项
			System.out.print("请输入菜单项(0~5):");
			//接受键盘输入的选项
			int choice=scanner.nextInt();
			switch(choice){
			case 1:
				System.out.println("数据采集中...");
				break;
			case 2:
				System.out.println("数据匹配中...");
				break;
			case 3:
				System.out.println("数据记录中...");
				break;
			case 4:
				System.out.println("数据显示中...");
				break;
			case 5:
				System.out.println("数据发送中...");
				break;
			case 6:
				//应用程序退出
				System.out.println("应用程序退出!");
				System.exit(0);
			default:
				System.out.println("请输入正确的菜单项(0~5):");
			}
			
		}
		
	}
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值