初识“数据巨轮”:数组 | 带你学《Java面向对象编程》之十四

简介: 本节将通过几个小例子带读者了解数组这一概念,并带领读者简单掌握数组的定义与初始化方法。

上一篇:六组案例一举拿下Java实体类 | 带你学《Java面向对象编程》之十三
【本节目标】
通过阅读本节内容,你将接触到Java中常用的一类数据:数组,并初步掌握其多种定义及初始化方法,通过for循环实现对简单数组的各种运用。
所有的项目开发之中都一定会存在有数组的使用,但是本次所讲解的只是数组的基本概念,而基本形式的数组出现的几率会有,但是不高,并且也不会涉及到过多复杂的操作,这只是针对于自己编写的程序代码而言。

数组的基本概念

如果说现在要定义100个整型变量,那么按照传统的做法,现在的实现如下:
int i1,i2,i3……i100;
这种方式的确是可以进行定义,但是如果说着100个变量属于关联的一组变量,则按照此种模式定义出来的变量就不适合于程序维护了(没有任何的参考规律),所以在程序开发之中考虑到一组变量的整体维护,专门提供有数组的概念。数组的本质在于:一组相关变量的集合,但是需要注意的一点是:在Java中将数组定义为引用数据类型,所以数组的使用一定要牵扯到内存分配,那么首先就一定可以想到使用关键字new来处理。数组的定义格式:

  • 数组的动态初始化,初始化之后数组每一个元素的保存内容为其对应数据类型的默认值;

    • 声明并初始化数组:

      • 数据类型 数组名称 [] = new 数据类型 [长度];
      • 数据类型 [] 数组名称= new 数据类型 [长度];
  • 数组的静态初始化:在数组定义的时候就为其设置好了里面的内容;

    • 简化格式:数据类型 数组名称 [] ={数据1,数据2,数据3,…};
    • 完整格式:数据类型 数组名称 [] = new 数据类型 [] {数据1,数据2,数据3,…};

当创建了一个数组之后就可以按照如下的方式进行使用:

  • 数组里面可以通过脚标进行每一个元素的访问,脚标从0开始定义,所以可以使用的脚标范围:“0~数组长度-1”,同时一定要注意,如果使用的时候超过了数组脚标范围则会出现
    “ArrayIndexOutOfBoundsException”(数组越界)异常。
  • 使用数组是为了其可以进行方便的变量管理,所以在进行数组操作的时候往往会利用for循环来完成;
  • 对于数组的长度也可以使用“数组名称.length”属性进行获得。

范例:定义数组

public class ArrayDemo {
   public static void main(String args[]) {
   //使用数组的动态初始化实现了数组的定义
       int data [] = new int [3] ;
       System.out.println(data[0]) ;
       System.out.println(data[1]) ;
       System.out.println(data[2]) ;
   }
}

image.png
图一 执行结果一

修改

System.out.println(data[2]) ;

变为

System.out.println(data[3]) ;

则会出现:数组越界

image.png
图二 执行结果二

利用for循环:

public class ArrayDemo {
    public static void main(String args[]) {
   //使用数组的动态初始化实现了数组的定义
       int data [] = new int [3] ;
       for(int x = 0 ; x < 3 ;x ++){
       System.out.println(data[x]) ;
       }
    }
}

image.png
图三 执行结果三

利用“数组名称.length”属性获得数组长度:

public class ArrayDemo {
    public static void main(String args[]) {
   //使用数组的动态初始化实现了数组的定义
        int data [] = new int [3] ;
        System.out.println(data.length) ;
        for(int x = 0 ; x < 3 ;x ++){
           System.out.println(data[x]) ;
        }
    }
}

image.png
图四 执行结果四

所以:

public class ArrayDemo {
   public static void main(String args[]) {
   //使用数组的动态初始化实现了数组的定义
       int data [] = new int [3] ;
       for(int x = 0 ; x < data.length ;x ++){
           System.out.println(data[x]) ;
       }
    }
}

image.png
图五 执行结果五

赋值:

public class ArrayDemo {
    public static void main(String args[]) {
   //使用数组的动态初始化实现了数组的定义
        int data [] = new int [3] ;
        data [0] = 11 ;    //为数组设置内容
        data [1] = 23 ;    //为数组设置内容
        data [2] = 56 ;    //为数组设置内容
        for(int x = 0 ; x < data.length ;x ++){
           System.out.println(data[x]) ;
        }
    }
}

image.png
图六 执行结果六

在以后进行项目的开发过程之中,见到最多的数组使用形式:进行数组的循环处理。
数组本身分为动态初始化与静态初始化,之前所讲的是动态初始化,动态初始化之后会发现数组之中的每一个元素的内容都是其对应数据类型的默认值,随后可以通过下标为数组进行内容的设置,如果现在不希望这么复杂,而是希望数组定义的时候就已经可以提供内容,则可以采用静态初始化的方式完成。
范例:使用静态初始化定义数组

public class ArrayDemo {
    public static void main(String args[]) {
   //使用数组的静态初始化实现了数组的定义
        int data [] = new int [] {11,23,56} ;
        for(int x = 0 ; x < data.length ;x ++){
            System.out.println(data[x]) ;
        }
    }
}

image.png
图七 执行结果七

对于数组的操作而言,基本上都是拿到数据后循环控制。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

又见引用--数组元素的奇妙之旅 | 带你学《Java面向对象编程》之十五
更多Java面向对象编程文章查看此处

相关文章
|
13天前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
1月前
|
存储 Java API
深入剖析Java Map:不只是存储数据,更是设计艺术的体现!
【10月更文挑战第17天】在Java编程中,Map是一种重要的数据结构,用于存储键值对,并展现了设计艺术的精髓。本文深入剖析了Map的设计原理和使用技巧,包括基本概念、设计艺术(如哈希表与红黑树的空间时间权衡)、以及使用技巧(如选择合适的实现类、避免空指针异常等),帮助读者更好地理解和应用Map。
95 3
|
14天前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
35 2
|
14天前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
25 2
|
18天前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
40 2
|
24天前
|
SQL Java OLAP
java实现“数据平滑升级”
java实现“数据平滑升级”
40 2
|
29天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
30天前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
31 4
|
30天前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
29 2
|
25天前
|
SQL Java OLAP
java实现“数据平滑升级”
java实现“数据平滑升级”
14 0
下一篇
无影云桌面