Java零基础25-Java数组

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shilishili/article/details/88419195

阅读完后:

  • 什么是数组【掌握】
  • 数组的特性【掌握】
  • 声明与初始化数组【掌握】
  • 访问数组【掌握】

前言

我们开始学习 Java 数组,什么是数组? 数组是由一连串类型相同的变量组成的。

在开发过程中,我们使用单个变量存储信息可以满足基本需求,但如果需要同时记录 10 条相关的信息,该如何做呢?
创建 10 个不同的变量,并赋初始值?这可以解决问题,但如果随着处理的信息量越来越大,工作也将越来越繁琐,其实 Java 为我们提供的数组来满足这个需求,使用数组可以将数据的组合起来,统一规划,批量处理。

数组的特性

在使用数组之前,我们先了解一下数组的三个特性:一致性、有序性、不可变性。

一致性
数组只能用来存储任何同一类型值数据的集合。
例如,可以有 int 数组、String 对象的数组或数组的数组,但一个数组不能同时存储 String 对象和 int 值。
有序性
数组中的元素是有序的,可以通过索引下标访问。
不可变性
固定数目,数组一旦初始化,则长度(数组中元素的个数)不可变。

声明数组

在使用数组时,我们先需要声明一个用来存储数组的变量。

声明数组变量需要将一对中括号添加到数据类型或变量名后面。
声明数组变量有两种方式:数据类型紧跟中括号 “ [] ”、变量名紧跟中括号 “ [] ”,我们分别来学习这两种数组的声明方式。

  • 第一种声明,数据类型紧跟中括号 “ [] ”

语法
数据类型[] 数组变量名;

示例代码如下:

int[] numbers;
String[] requests;
float[] donations;
  • 第二种声明,变量名紧跟中括号 “ [] ”

语法
数据类型 数组变量名[];

int numbers[];
String requests[];
float donations[];

在 Java 程序中,推荐使用第一种声明方式,这种方法更易读,更流行。

数据初始化

我们学完声明数组变量后,声明数组之后是不会创建数组的,而只是告诉编译器该变量可用于保存特定数据类型的数组,Java 虚拟机还没有给元素分配内存空间。

接下来需要初始化一个数组对象,并将它赋给数组变量。初始化数组时要指定其长度,初始化之后,数组的长度就已固定,不能再变化了。
创建数组,就是在内存中为数组创建相应的存储空间,由于在 Java 中,数组是对象,可以使用 new 运算符创建新的数组实例。

数组的初始化有两种方式:动态初始化和静态初始化,我们分别来学习这两种数组初始化。

动态初始化

动态初始化使用 new 运算符分配指定长度的内存空间。

语法:
数据类型[] 变量名 = new 数据类型[数组长度];
示例代码如下:

int[] numbers = new int[5];

该语句创建一个新的 int 数组,它包含 5 个可用于存储整数的元素。使用 new 来创建数组对象时,必须指定数组的大小。一旦创建了数组, 就不能再改变它的大小(尽管可以改变每一个数组元素)。
如果经常需要在运行过程中扩展数组的大小,就应该使用另一种数据结构。

上述语句并没有将 int 存储到元素中,我们可以动态的将 int 存储到相应的数组中。
示例代码如下:

numbers[0] = 1;	// 将整数 1 存储到索引为 0 的数组中
numbers[1] = 2;	// 将整数 2 存储到索引为 1 的数组中
numbers[2] = 3;	// 将整数 3 存储到索引为 2 的数组中
numbers[3] = 4;	// 将整数 4 存储到索引为 3 的数组中
numbers[4] = 5;	// 将整数 5 存储到索引为 4 的数组中
静态初始化

初始化数组时直接给出每个元素的初始值,并且数组的长度是根据元素的初始值计算出来的。

示例代码如下:

int[] numbers = new int[] { 1, 2, 3, 4, 5};

也可以简写为:

int[] numbers = { 1, 2, 3, 4, 5 };

该语句创建一个新的 int 数组,它包含 5 个可用于存储整数的元素,数组长度根据初始元素值计算得来,因为 numbers 数组有 5 个元素,所以数组长度为 5。

数组元素的默认值

使用 new 创建数组对象时,其所有元素都被自动地初始化,下面是类型初始化所定义的默认值,如下所示:

基本类型 默认值 描述
byte 0 数字数组, 所有元素都初始化为 0
short 0 数字数组, 所有元素都初始化为 0
int 0 数字数组, 所有元素都初始化为 0
long 0L 数字数组, 所有元素都初始化为 0
float 0.0f 浮点数组,所有元素都初始化为 0.0
double 0.0d 浮点数组,所有元素都初始化为 0.0
char ‘\u0000’ 字符数组,所有元素都初始化为 Unicode 编码中的空字符
boolean false 布尔数组,所有元素都初始化为 false
引用 null 对象数组,所有元素都初始化为一个特殊值 null

例如

String[] names = new String[10] ;
我们创建一个包含 10 个字符串的数组,数组元素默认值为 null。

int[] counter = new int[5] ;
我们创建一个包含 5 个 int 的数组,数组元素的默认值为 0。

访问数组

数组是用来存储一系列数据顼,其中的每一项具有相同的基本数据类型、类或相同的父类。每一项都有自己的位置,因此访问起来很容易。

数组中的每个项都称作元素(element),每个元素都用数字索引(index)来进行访问。数组下标索引是从 0 开始。如下图所示:

数组元素通过数字索引访问
数组元素通过数字索引访问

我们可以根据数组索引 0 访问第一个元素的数据,示例代码如下:

System.out.println(numbers[0]);	// 打印 1

在本章我们学习了:

  • 数据是一个对象
  • 数据就是一连串类型相同的变量组成的
  • 数组数据类型一致性、数据元素有序性、长度不可变性
  • 声明数据是紧跟中括号
  • 初始化数组时必须给长度
  • 初始化数组有动态初始化和静态初始化
  • 动态初始化数组时,将会给数组元素初始化默认值
  • 访问数组元素使用索引来进行访问

接下来,我们开始学习 Java 算数运算符:Java零基础26-Java算数运算符

猜你喜欢

转载自blog.csdn.net/shilishili/article/details/88419195
今日推荐