【数组知识点】


一、数组的概述和静态初始化

数组介绍

数组指的是一种容器,可以用来存储同种数据类型的多个值

  • 数组容器在存储数据的时候,需要结合隐式转换考虑
  • 例:int类型的数组容器(byte、short、int可以存储)
  • 例:double类型的数组容器(byte、short、int、long、float、double可以存储)

数组的定义

第一种:

数据类型 [ ] 数组名
int [ ] array

第二种:

数据类型 数组名[ ]
int array[ ]

数组的静态初始化

  • 初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程
  • 完整格式:数据类型 [] 数组名 = new 数据类型[]{元素1,元素2,元素3…};
  • 简化格式:数据类型 [] 数组名 = {元素1,元素2,元素3…};
  • 例:int[] array = {11,22,33};
  • 例:double[] array2 = {11.1,22.2,33.3};
  //定义学生年龄
    int[] array = new int[]{
    
    11, 22, 33};
    int[] array1 ={
    
    11, 22, 33}; //简写格式
    //定义学生身高
    double[] array2 = new double[]{
    
    1.85, 1.86, 1.87};
    double[] array3 = {
    
    1.85, 1.86, 1.87};
    //定义学生姓名
    String[] array4 = new String[]{
    
    "张三", "李四", "王五"};
    String[] array5 = {
    
    "张三", "李四", "王五"};

二、数组的地址值和元素访问

数组的地址值:表示数组在内存中的位置

 int[] array1 ={
    
    11, 22, 33}; //简写格式
 System.out.println(array1);//地址值:[I@776ec8df
        //[:表示当前是一个数组
        //I:表示当前数组里面的元素都是int类型的
        //@:表示一个间隔符号
        //776ec8df:数组真正的地址值(十六进制)

元素访问

数组名[索引];

索引:

  • 索引:也叫下标,角标。
  • 特点:从0开始,逐个+1增长,连续不间断
public class array {
    
    
    public static void main(String[] args) {
    
    
        //利用索引对数组中的元素进行访问
        int[] arr ={
    
    1, 2, 3, 4, 5};
        int number = arr[0];
        System.out.println(number);

        //把数据存储到数组中
        arr[0] = 100;
        //一但被覆盖后,原来的数据就不存在了
        System.out.println(arr[0]);
    }
}

三、数组的遍历

利用循环快速的遍历数组
在Java中,关于数组的一个长度属性,length
调用方式:数组名.length

public class array {
    
    
    public static void main(String[] args) {
    
    
        int[] array ={
    
    1, 2, 3, 4, 5};
        //利用循环取出元素
        for(int i = 0; i < array.length; i++){
    
    
            System.out.println(array[i]);
        }
    }
}

练习1

定义一个数组1,2,3,4,5,并求和

public class array {
    
    
    public static void main(String[] args) {
    
    
        int[] arr = {
    
    1,2,3,4,5};
        //定义求和变量
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
    
    
            //i是数组中的索引
            //arr[i]是数组中的元素
            count = count + arr[i];
        }
        System.out.println(count);
    }
}

练习2

定义一个数组1到10,统计能被3整除的数有多少个

public class array {
    
    
    public static void main(String[] args) {
    
    
        int[] arr = {
    
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        //定义统计变量
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
    
    
           if(arr[i] % 3 == 0){
    
    
               count++;
           }
        }
        System.out.println(count);
    }
}

练习3

在遍历的过程中修改数组里的元素
定义一个1-10的数组
如果是偶数变成当前数字的二分之一,如果是奇数,扩大两倍

public class array {
    
    
    public static void main(String[] args) {
    
    
        int[] arr ={
    
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        for (int i = 0; i < arr.length; i++) {
    
    
            if(arr[i] % 2 == 0){
    
    
                arr[i] = arr[i] / 2;
            }else{
    
    
                arr[i] = arr[i] * 2;
            }
        }
        for (int i = 0; i < arr.length; i++) {
    
    
            System.out.println(arr[i]);
        }
    }
}

四、数组的动态初始化

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值

  • 格式:数据类型[] 数组名 = new 数据类型[数组长度];
  • 范例:int[] arr = new int[3];
    定义一个动态初始化数组并赋值
public class array {
    
    
    public static void main(String[] args) {
    
    
        //假如新生有50人来报道,暂时不知道姓名,所以定义一个动态数组
        String[] arr = new String[50];
        //进行赋值
        arr[0] = "张三";
        arr[1] = "李四";
        System.out.println(arr[0]);//张三
        System.out.println(arr[1]);//李四
        System.out.println(arr[2]);//null-动态初始化值
    }
}

数组默认初始化值的规律

  • 整数类型:默认初始化值0
  • 小数类型:默认初始化值0.0
  • 字符类型:默认初始化值’/u0000’ 空格
  • 布尔类型:默认初始化值 false
  • 引用数据类型:默认初始化值 null

静态初始化和动态初始化区别

动态初始化:手动指定数组长度,由系统给出默认初始化值

  • 只明确元素个数,不明确具体数值,推荐使用动态初始化

静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度

  • 需求中已经明确了要操作的具体数据,直接静态初始化就可以

猜你喜欢

转载自blog.csdn.net/qq_64451048/article/details/127667902