1.数组简介
用于存放相同数据类型的数据元素,数组的内存是一段连续的存储空间
语法结构:数据类型 [] 数组名=new 数据类型[内存空间大小];
数据类型 数组名[]=new 数据类型[内存空间大小];
数据类型 数组名[]={值1,值2,···};
//数组在创建成功后 如果没有指定具体的值是多少 那么将用当前类型的默认值进行填充 //整型 0 //浮点型 0.0 //字符型 0对应的字符 //布尔型 false
package net.zx.j2se.day03;
public class Text12 {
public static void main(String[] args) {
int[] a=new int[3]; //动态初始化,定义长度
int b[]=new int[4]; //为C语言保留下来的语法
int c[]={1,9,0,3,4}; //静态简写
int d[]=new int[]{1,2,3,4}; //静态初始化,定义内容
for(int i=0;i<a.length;i++){//a.length为获取数组a的数组长度
System.out.print(a[i]);
}
System.out.println();
for(int i=0;i<b.length;i++){
System.out.print(b[i]);
}
System.out.println();
for(int i=0;i<c.length;i++){
System.out.print(c[i]);
}
System.out.println();
for(int i=0;i<d.length;i++){
System.out.print(d[i]);
}
}
}
//输出结果
//000
//0000
//19034
//1234
2、下标越界
数组下标从0开始算
package net.zx.j2se.day03;
public class Text12 {
public static void main(String[] args) {
int[] a={1,2,3,4}; //静态初始化,数组长度为4,数组下标为0~3
System.out.println(a[4]); //下标越界
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at net.zx.j2se.day03.Text12.main(Text12.java:6)
3、数组遍历
使用for循环实现数组遍历,将数组中的数值依次打印出来
package net.zx.j2se.day03;
public class Text12 {
public static void main(String[] args) {
int[] arr={1,2,3,4};
for(int i = 0;i < arr.length;i++) {
System.out.print(arr[i]);
}
}
}
4、随堂测试
-
计算数组中所有数据的总和
-
找出数组中的最大值和最小值
-
找出数组数值1出现的次数
-
将数组中的数据按照从小到大的顺序进行排序
package net.zx.j2se.day03;
public class Text09 {
public static void main(String[] args) {
int[] arr={2,4,2,7,9,1,87,23,7,7,7,76};
int sum=0; //1.求和
int max=arr[0]; //2.最大值
int min=arr[0]; //3.最小值
int count=0; //4.1的个数
for(int i=0;i<arr.length;i++){
sum +=arr[i];
if(max<arr[i]){
max=arr[i];
}
if(min>arr[i]){
min=arr[i];
}
if(arr[i]==7){
count++;
}
}
System.out.println(sum);
System.out.println(max);
System.out.println(min);
System.out.println(count);
//5.按从小到大顺序排序
//冒泡排序法
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(int i=0;i<arr.length;i++){
System.out.print(" "+arr[i]);
}
}
}
//运行结果
//232
//87
//1
//4
// 1 2 2 4 7 7 7 7 9 23 76 87
5、二维数组
package net.zx.j2se.day04;
public class Text01 {
public static void main(String[] args) {
int[] arr=new int[4];
int[][] brr=new int[2][6]; //动态初始化
int[][] crr={{1,2},{3,4,5},{5,6,2}}; //静态初始化
int[][] drr=new int[8][]; //二维数组[][]定义时,前一个[]必须赋初值
drr[3]=arr;
System.out.println(arr[1]);
System.out.println(brr[1][0]);
System.out.println(crr[1][2]);
System.out.println(drr[3][0]);
}
}
//运行结果:
//0
//0
//5
//0
6、二维数组遍历
package net.zx.j2se.day04;
public class Text05 {
public static void main(String[] args) {
int[][] arr={{1,2,3},{0,0,0},{1},{3,4,5,2}};
for(int i=0;i<arr.length;i++){
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]);
}
System.out.println();
}
}
}
//运行结果:
//123
//000
//1
//3452
7.课堂巩固(酒店管理系统——Java二维数组)
package net.zx.j2se.day04;
import java.util.Scanner;
public class Text02 {
/*****酒店管理系统******/
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String[][]rooms=new String[6][4];
boolean flag=true;
while(flag){
System.out.println("——————————酒店管理系统———————————");
System.out.println("1、查看房间信息:");
System.out.println("2、办理入住:");
System.out.println("3、办理退房:");
System.out.println("0、退出系统:");
System.out.println("———————————————————————————————");
System.out.print("请选择:");
int n=sc.nextInt();
switch(n){
case 1: //查看房间信息
for(int i=0;i<rooms.length;i++){
for(int j=0;j<rooms[i].length;j++){
// //方法一 ——> if判断
// if(rooms[i][j]!=null){
// System.out.print("房间号:"+0+(i+1)+0+(j+1)+" "+rooms[i][j]+"\t");
// }else{
// System.out.print("房间号:"+0+(i+1)+0+(j+1)+" 空\t");
// }
//方法二 ——> 条件判断语句
System.out.println("房间号:"+0+(i+1)+0+(j+1)+
(rooms[i][j]!=null?(" "+rooms[i][j]+"\t"):" 空\t"));
}
System.out.println();
}
break;
case 2: //办理入住
System.out.print("请输入房间号:");
int no=sc.nextInt(); //房间号
System.out.print("请输入住客姓名:");
String name=sc.next(); //姓名
int lc=no/100; //楼层
int fj=no%100; //房间
if(lc<1||lc>6||fj<1||fj>4){
System.out.println("请输入正确房间号!");
break;
}
if(rooms[lc-1][fj-1]!=null){
System.out.println("该房间已有客人入住");
break;
}
rooms[lc-1][fj-1]=name;
System.out.println("添加成功~");
break;
case 3: //办理退房
System.out.print("请输入需要退房的房间号:");
int no1=sc.nextInt();
int lc1=no1/100; //楼层
int fj1=no1%100; //房间
if(lc1<1||lc1>6||fj1<1||fj1>4){
System.out.println("请输入正确房间号");
break;
}
if(rooms[lc1-1][fj1-1]==null){
System.out.println("该房间无人入住");
break;
}
rooms[lc1-1][fj1-1]=null; //退房
System.out.println("退房成功!");
break;
case 0: //退出系统
flag=false;
System.out.println("退出系统~");
break;
default:
System.out.println("选择错误,请重新选择!");
}
}
}
}