一维数组复习笔记

一维数组

一. 什么是数组

1. 数组的理解

  • 多个相同类型的数据按一定顺序排列的集合,并使用一个名字命名
  • 通过编号的方式对这些数据统一管理

2. 数组相关的概念

  • 数组名
  • 元素
  • 索引
  • 长度

3. 数组的特点

  • 有序排列
  • 引用类型有三种
    • 数组
    • 接口
  • 数组的元素类型
    • 可以是基本数据类型
    • 也可以是引用数据类型
  • 创建数组对象会在内存中开辟出一个连续的空间
  • 数组的长度一旦确定,就不可修改

4. 数组的分类

  • 按照维数
    • 一维
    • 二维
  • 按照元素类型
    • 基本数据类型元素的数组
    • 引用数据类型元素的数组

二. 一维数组的基本使用

1. 一维数组的声明和初始化

  • 静态初始化

    • 初始化和元素赋值同时进行

    •         int[] ids;  // 声明
              ids = new int[]{1, 2, 3, 4};    // 初始化,是引用类型需要new
      
  • 动态初始化

    • 初始化和元素赋值分开进行

    • String[] name = new String[5];  // 但并没有赋值
      name[0] = "小米";
      name[1] = "小花";
      name[2] = "小红";
      name[3] = "小明";
      
  • 总结:

    • 数据一旦初始化完成,长度就确定了

2. 通过索引操作数组元素

  • 通过索引给数组赋值

    • 索引是从0开始的,到数组的length-1结束

    •         String[] people = new String[3];    // 动态初始化
              people[0] = "张三";
              people[1] = "李四";
              people[2] = "王五";
      

3. 遍历数组

        String[] stu = new String[4];
        stu[0] = "刘备";
        stu[1] = "关羽";
        stu[2] = "张飞";
        stu[3] = "诸葛亮";
        for (int i = 0; i < stu.length; i++) {
            System.out.println(stu[i]);
        }

4. 数组元素的默认初始值

  • 整型:0

    • int[] arr1 = new int[4];
      System.out.println(arr1[1]);     // 0
      
  • 浮点型:0.0

    • float[] arr2 = new float[3];
      System.out.println(arr2[1]);    // 0.0
      
  • char型:0或者 ‘\u0000’ ,非自然数0

    • char[] arr3 = new char[3];
      System.out.println("----"+arr3[1]+"-----");    // 0空格
      
  • boolean型:false

    • boolean[] arr4 = new boolean[3];
      System.out.println(arr4[1]);    // false
      
  • 引用类型:null

    • String[] arr5 = new String[3];
      System.out.println(arr5[1]);    // null
      

5. 一维数组的内存解析

  • 根据以下代码画出内存图

    • 注意:String字符串应该在常量池中

    • int[] arr = new int[]{1,2,3};
      String[] arr6 = new String[4];
      arr6[1] = "黎明";
      arr6[2] = "郭富城";
      arr6 = new String[3];
      System.out.println(arr6[1]);    // null
      
  • 内存图

在这里插入图片描述

三. 练习题

1. 练习1

单间出租4个月,550/月(水电煤公摊,网费35/月),空调,卫生间,厨房齐全。屋内是IT行业人士,喜欢安静,要求来租者最好是同行或者刚毕业的年轻人,爱干净,安静。根据代码求出号码
int[] temp = 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 += temp[index[i]];
}
System.out.println("联系方式:"+tel);    // 18013820100

2. 练习2

* 从键盘读入学生成绩,找出最高分,并输出学生成绩等级(先输入学生人数,再根据人数创建数组)
* 成绩>=最高分-10  等级为A
* 成绩>=最高分-20  等级为B
* 成绩>=最高分-30  等级为C
* 其余            等级为D
        // 1.使用Scanner,读取学生个数
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入学生人数:");
        int number = scan.nextInt();

        // 2.创建数组,动态初始化
        int[] stuResult = new int[number];

        // 3.给数组中元素赋值
        System.out.println("请输入"+number+"个学生成绩:");
        for (int i = 0; i < stuResult.length; i++) {
            stuResult[i] = scan.nextInt();
        }

        // 4.获取数组中元素的最大值:最高分
        int maxResult = 0;
        for (int i = 0; i < stuResult.length; i++) {
            if (maxResult < stuResult[i]) {
                maxResult = stuResult[i];
            }
        }

        // 5,根据每个学生成绩与最高分的差值,得到每个学生的等级,并输出等级和成绩
        char level;
        for (int i = 0; i < stuResult.length; i++) {
            if (maxResult - stuResult[i] <= 10) {
                level = 'A';
            }else if (maxResult - stuResult[i] <= 20) {
                level = 'B';
            }else if (maxResult - stuResult[i] <= 30) {
                level = 'C';
            }else {
                level = 'D';
            }
            System.out.println("学生"+(i+1)+"成绩是"+stuResult[i]+",等级是"+level);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值