• Java—初识数组


    目录

    前言    

     1. 什么是数组

     2. 数组的定义与初始化

      2.1 数组的定义

      2.2 数组的初始化

     3 数组的使用 

      3.1 数组的元素

      3.2 数组相关方法

    总结


    前言    

            在实际应用场景中,我们经常需要整理大量相同类型的数据,例如学校统计学生成绩、银行记录用户信息、书店整理在册图书等等。如果信息数量较少,我们可以通过创建多个变量逐一记录这些数据。但是当数据量增加时,这种方式会变得繁琐且低效。这时候,可以使用数组来提高工作效率和代码优化。使用数组可以将相同类型的数据按照一定的顺序储存在连续的内存空间中。


     1. 什么是数组

            顾名思义,数组就是将一些数据组合,通过一个列表将其统一存放,元素之于列表,就类似于我们现实中 商品与货架之间的关系;

    •         货架上可以摆放各种各样的商品;
    •         同一货架上摆放的类型必须相同;
    •         商品之间的空间都是相连的;
    •         货架的空间都会有其自己的编号。

    在数组之中也是如此:

    •         数组中可以储存任意类型的元素,包括应用类型甚至数组;
    •         同一数组内存放的元素其类型必须相同;
    •         数组内的空间是联续的;
    •         数组内的每个空间都有自己的编号(数组中被称为下标),由起始位置的 0 开始依次递增。


     2. 数组的定义与初始化

      2.1 数组的定义

            书写形式:数组类型[ ] = new 数组类型[ 数组长度 ];

    例:

    1. int[] a = new int[5]; //创建一个长度为5的整形数组
    2. char[] c = new char[10]; //定义一个长度为10的字符形数组
    3. String[] b = new String[15]; //定义一个长度为15的字符串数组

      2.2 数组的初始化

            数组的初始化分为静态初始化与动态初始化。

    动态初始化:

      定义数组时确定数组长度,但不直接赋值

    int[] a = new int[10];

     注意:动态初始化后 或 未初始化的数组,引用类型默认为null,基本数据类型元素对应为各自默认初始值 ↓

    类型默认值
    byte0
    short0
    int0
    long0
    float0.0f
    double0.0
    char/u0000
    booleanfalse

    静态初始化:

    定义数组时直接填充元素,,根据元素个数自动确定长度

    1. int[] b = new int[]{1,2,3,4,5};
    2. //可以简化省去后半部分的new 数组类型[]
    3. int[] b = {1,2,3,4,5};

     3 数组的使用 

      3.1 数组的元素

            前边提到过数组内的空间有连续的编号(下标),从 0 开始依次递增,而想要访问获取或者修改数组中的特定元素,就需要用到下标。

            借助数组的下标我们可以准确的定位到元素的位置,从而对其进行操作:

    1. int[] a = {1,2,3,4,5};
    2. System.out.println(a[0]);//打印结果:1
    3. System.out.println(a[1]);//打印结果:2
    4. System.out.println(a[2]);//打印结果:3
    5. System.out.println(a[3]);//打印结果:4
    6. System.out.println(a[4]);//打印结果:5
    7. a[4] = 0;//更改4下标元素
    8. System.out.println(a[4]);//打印结果:0 更改成功

    需要注意的是:数组长度是固定的,一个有n个元素的数组,其下标为 [ 0,n ) —— 左闭右开,如果在数组操作中输入下标大于或等于n,编译器会抛出数组越界异常!

      3.2 数组相关方法

    在实际运用当中我们需要对数组进行例如排序,遍历搜索等操作,而Java中提供了丰富的方法操作数组,为我们的工作与学习提供了很大帮助。

    • .length 获取数组长度,返回值整形
    1. int[] a = {1,2,3,4,5};
    2. int b = a.length;
    3. System.out.println(b); //输出5
    • Arrays类:这个类中包含许多数组操作方法,下面简单例举几个

            注意:使用Arrays类中的方法需要再当前文件中声明:import java.util.Arrays;

            1. toString():将数组转化为字符串表示

    1. int[] a = {1,3,2,4,5};
    2. System.out.println(Arrays.toString(a));
    3. //输出 [1,3,2,4,5]

             2. sort():对数组进行排序

            对于基本数据类型:

                    数字类型(byte, short, int, long, float, double)按照数值大小排序。

                    字符类型(char)按照字符的Unicode编码排序。

            对于引用类型:(涉及接口,重写等内容后期介绍)

                    对象类型需要实现Comparable接口,并重写compareTo()方法来定义排序规则。

                    如果没有实现Comparable接口,将会抛出ClassCastException异常。

    1. int[] a = {1,3,2,4,5};
    2. Arrays.sort(a); //进行排序
    3. System.out.println(Arrays.toString(a));
    4. //输出 [1,2,3,4,5]

             3.equals():比较两个数组是否相等

            如果两个数组都为null,则它们被认为是相等的。

            如果两个数组有一个为null,而另一个不为null,则它们被认为是不相等的。

            如果两个数组的长度不相等,则它们被认为是不相等的。

            逐个比较两个数组中对应位置的元素,如果所有元素都相等,则它们被认为是相等的。

    需要注意的是,对于数组中的引用类型元素,比较的是引用的地址是否相等,而不是对象内容的相等性。

    1. int[] arr1 = {1, 2, 3};
    2. int[] arr2 = {1, 2, 3};
    3. int[] arr3 = {1, 2, 4};
    4. System.out.println(Arrays.equals(arr1, arr2)); // 输出:true
    5. System.out.println(Arrays.equals(arr1, arr3)); // 输出:false

    总结

            数组是一种能够整理大量相同类型数据的数据结构,通过将数据存储在连续的内存空间中,可以提高工作效率和代码优化。数组的定义和初始化分为动态初始化和静态初始化两种方式。数组的元素可以通过下标进行访问和修改,数组长度可以通过.length获取。Java的Arrays类提供了丰富的数组操作方法,如将数组转化为字符串表示、对数组进行排序以及比较两个数组是否相等。在实际应用中,数组的使用能够简化数据管理和操作,提高代码的可读性和可维护性。

    (引用类型及其他数组相关实践下日期介绍)

  • 相关阅读:
    三、OO三大特性
    十个你要知道的测试小知识
    [Servlet/Tomcat] HttpServletRequest#getHeader(headerNameWithIgnoreCase)(获取header时不区分大小写)
    CSS常见选择器
    flink技术总结待续
    matlab-BP神经网络的训练参数大全
    基于深度卷积神经网络的时间序列图像分类,开源、低功耗、低成本的人工智能硬件提供者
    P1868 饥饿的奶牛
    Entity Developer数据库应用程序的开发
    wdb_2018_2nd_easyfmt
  • 原文地址:https://blog.csdn.net/qq_45001552/article/details/132629474