image.png

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

    2.数组的相关概念:
    >数组名
    >元素
    >角标、下标、索引
    >数组的长度:元素的个数

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

    4.数组的分类:
    ①按照维数:一维数组、二维数组、……多维数组
    ②按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组

    5.一维数组的使用
    ①一位数组的声明和初始化
    ②如何调用数组的指定位置的元素
    ③如何获取数组的长度
    ④如何遍历数组
    ⑤数组元素的默认初始化值
    ⑥数组的内存解析
    **

    1.一维数组的声明和初始化
    int[] ids; //声明
    //1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
    ids = new int[]{1001,1002,1003,1004};

    1. 正确: ids = {1001,1002,1003,1004};//类型推断<br /> //1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行<br /> String[] name = new String[5]; <br /> 总结:数组一旦初始化完成,其长度就确定了。<br /> <br /> 2.如何调用数组的指定位置的元素:通过角标的方式调用。<br /> //数组的角标(或索引)从0开始的,到数组的长度-1结束。<br /> name[0] = "小明";<br /> name[1] = "小王";<br /> name[2] = "小张";<br /> name[3] = "小李";<br /> name[4] = "小黑";

    3.如何获取数组的长度。
    //属性:length
    System.out.println(name.legth); //5

    4.如何遍历数组
    for(int i = 0;i System.out.println(i);
    }

    5.数组元素默认初始化值
    >数组元素是整型: 0
    >数组元素是浮点型: 0.0
    >数组元素是boolean型: false (false的二进制是0)
    >数组元素是char型: ’0‘(或‘\u0000’)是ascll码
    >数组元素是引用(String)数据类型:null(空值的意思)

    6.数组的内存解析
    **
    /
    以下代码是一个人留下的联系方式:
    */

    1. package com.atguigu.java;
    2. public class ArrayTest {
    3. public static void main(String[] args) {
    4. int[] arr = new int[] { 8, 2, 1, 0, 3 };
    5. int[] index = new int[] { 2, 0, 3, 2, 4, 0, 1, 3, 2, 3, 3 };
    6. String tel = "";
    7. for (int i = 0; i < index.length; i++) {
    8. tel += arr[index[i]];
    9. }
    10. System.out.println("联系方式:" + tel);
    11. }
    12. }

    /
    从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
    成绩>=最高分-10 等级为‘A’
    成绩>=最高分-20 等级为‘B’
    成绩>=最高分-30 等级为‘C’
    其他 等级为‘D’
    */

    1. package test2;
    2. import java.util.Scanner;
    3. public class test2 {
    4. public static void main(String[] args) {
    5. Scanner scan = new Scanner(System.in);
    6. System.out.println("请输入学生人数:");
    7. int i = scan.nextInt();
    8. System.out.println("请输入" +i +"个学生成绩:");
    9. //创建数组
    10. int[] scores = new int[i];
    11. //输入学生的成绩,并赋值给数组
    12. int num = 0;
    13. for(int j = 0;j<i;j++){
    14. num = scan.nextInt();
    15. scores[j] = num;
    16. }
    17. //获取最大成绩
    18. int maxScores = 0;
    19. for(int j = 0;j<scores.length;j++){
    20. if(maxScores<scores[j]){
    21. maxScores = scores[j];
    22. }
    23. }
    24. System.out.println("最高成绩为:"+maxScores);
    25. //给成绩排等级
    26. for(int j = 0;j<scores.length;j++){
    27. if(maxScores - scores[j] <=10 ){
    28. System.out.println("学生"+(j+1)+",的等级是A");
    29. }else if(maxScores - scores[j] <=20){
    30. System.out.println("学生"+(j+1)+",的等级是B");
    31. }else if(maxScores - scores[j] <=30){
    32. System.out.println("学生"+(j+1)+",的等级是C");
    33. }else
    34. System.out.println("学生"+(j+1)+",的等级是D");
    35. }
    36. }
    37. }

    *
    *
    特加:
    数组的复制
    array2 = array1;//假的复制,array2的存储地址依然和array1相同
    array2 = new int[array1.length]}; //真复制