JAVA基础_数组(一维数组)

一、数组的概述

  • 1、数组(Array),是多个相同的类型数据按照一定顺序排序的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。

  • 2、数组的常见概念

  • 数组名

  • 下标(或索引)

  • 元素

  • 数组的长度:元素的个数

二、数组的特点

  • 1.数组是有序排列的
  • 2.数组属于引用数据类型变量,但数组的元素既可以是基本数据类型,也可以是引用数据类型。
  • 3.创建数组对象会在内存中开辟一整块连续的空间。
  • 4.数组长度一旦确定,就不能修改

三、数组分类

  • 1.按照维数:一维数组、二维数组、三维数组…等等
  • 2.按照数组的元素:基本数据类型的数组、引用数据类型元素的数组

四、一维数组的使用

  /**
     * 一维数组的使用和步骤:
     * 1.一维数组的声明和初始化
     * 2.如何调用数组的指定位置的元素
     * 3.如何获取数组的长度
     * 4.如何遍历数组
     * 5.数组元素的默认初始化值
     * 6.数组的内存解析
     */
    public static void first() {
        //1.一维数组的声明和初始化
        int num;//声明
        num = 10;//初始化
        int num1 = 10;//声明+初始化

        int[] ids;//声明
        //静态初始化:数组的初始化和数组元素的赋值操作同时进行
        ids = new int[]{1001, 1002, 1003, 1004};
        //动态初始化:数组的初始化和数组元素的赋值操作分开进行,也就是动态初始化没有赋值
        String[] names = new String[5];

        //总结:一旦数组初始化完,就确定了数组的长度!
        //2.如何调用数组的指定位置的元素:通过角标的方法调用
        //数组的角标(或索引)从0开始,到数组的长度减一结束
        names[0] = "网名";
        names[1] = "网名1";
        names[2] = "网名2";
        names[3] = "网名3";
        names[4] = "网名4";

        //3.如何获取数组的长度。
        //属性:length
        System.out.println(names.length);
        System.out.println(ids.length);
        //4.如何遍历数组
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i]);
        }
        /**5.数组元素的初始化值
         * 数组元素是整型:默认初始化值都 0
         * 数组元素的浮点型:默认初始化为0.0
         * 数组元素是char型;0或"/u0000,而不是'0'
         * 数组元素是boolean型:默认值为false
         *
         *
         * 数组数据类型是引用数据类型时:默认值为 null
         */
        //数组元素是整型:默认初始化值都 0
        int[] arr = new int[4];
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        //数组元素的浮点型:默认初始化为0.0
        float[] arr1 = new float[4];
        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr1[i]);
        }
        //数组元素是char型
        char[] arr2 = new char[4];
        for (int i = 0; i < arr2.length; i++) {
            System.out.println("----" + arr2[i] + "****");
        }
        //数组元素是boolean型:默认值为false
        boolean[] arr3 = new boolean[5];
        System.out.println(arr3[1]);

        //数组数据类型是引用数据类型时i
        String[] arr4 = new String[5];
        System.out.println(arr4[1]);
        if (arr4[1] == null) {
            System.out.println("good");
        }

        //6.数组的内存解析
        /**
         * 栈:存放局部变量
         * 堆:new出来的结构,对象和数组
         */

    }

五、练习题

练习题:
1.升景坊单间短期出租4个月,550元/月(水电煤气公摊,网费35元),空调、卫生间、厨房齐全。房内均是IT人士,喜欢安静,所以要求来租着最高是同行

//习题1:
 public static void tow() {
        int[] arr = new int[]{8, 2, 1, 0, 3};
        int[] index = new int[]{2, 0, 3, 2, 4, 0, 1, 3, 2, 3, 3};
        String tel = "";
        for (int i = 0; i < index.length; i++) {
            tel += arr[index[i]];
        }
        System.out.println("电话为" + tel);
    }
    //!!!注意不要打,可以真的有这个人。
//模仿习题,利用数组输出自己的电话号码
//?是根据自己的电话号里面的数字,
//*是自己电话号数字里面数组的下标
public static void three() {
        int[] arr = new int[]{};
        int[] index = new int[]{*};
        String tel = "";
        for (int i = 0; i < index.length; i++) {
            tel += arr[index[i]];
        }
        System.out.println("电话为" + tel);
    }

2.利用数组从键盘读入学生成绩,找出最高分,并输出学生成绩等级。

   public static void four() {
        /**
         * 过程:
         * 1.使用Scanner,读取学生个数
         * 2.创建数组,存储学生成绩,动态初始化
         * 3.遍历数组,并赋值
         * 4.获取数组中元素的最大值,排序
         * 5.判断每个学生成绩与最高分差值,并输出等级和成绩
         */
        //1.使用Scanner,读取学生个数
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学生个数");
        int number = scanner.nextInt();
//       2.创建数组,存储学生成绩,动态初始化
        int[] scores = new int[number];
//        3.遍历数组,并赋值++ 排序
        System.out.println("请输入" + number + "个学生成绩");
        int maxscore = 0;
        for (int i = 0; i < scores.length; i++) {
            scores[i] = scanner.nextInt();
            if (maxscore < scores[i]) {
 //这个步骤就是第四步,因为我们发现都是遍历数组,多了一个比较大小而已,所以可以放在这里,提前的比较,从而节省我们的代码量。  maxscore = scores[i];
 			 maxscore = scores[i];
            }
        }
//        4.获取数组中元素的最大值,排序
//        for (int i = 0; i < scores.length; i++) {
//            if (maxscore < scores[i]) {
//                maxscore = scores[i];
//            }
//        }
//        5.判断每个学生成绩与最高分差值,并输出等级和成绩
        char level;
        for (int i=0;i<scores.length;i++){
            if (maxscore-scores[i]<=10){
                level='A';
            }else if (maxscore-scores[i]<=20){
                level='B';
            }else if (maxscore-scores[i]<=30){
                level='C';
            }else {
                level='D';
            }
            System.out.println("student" + i + "score is" + scores[i] + ",grage id" + level);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值