数组(Array)

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("选择错误,请重新选择!");
                
            }
        }
        
    }
​
}
​

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值