Java中的数组——创建及使用
前言
在开始学习数组之前,我们先来一起了解一下数组。
在Java中,数组是具有相同数据类型的一组数据的集合。在程序设计中,可以将这些集合称之为数字。数组中的元素具有相同的数据类型。在Java中数组也可以看做为一个对象,虽然基本数据类型不是对象,但是由基本数据类型组成的数组却是对象。在程序设计中引入数组可以更加有效的管理和处理数据,也可以根据数组的维数将数组进行划分。
一起来!!!(若此文有任何错误观点,望路过的大佬斧正,感激不尽)
一、数组的概念
数组由同一类型的对象或者基本数据组成,并封装在同一一个标识符(数组名称)下。
- 数组是对象
- 动态初始化
- 可以赋值给Object类型的变量
- 在数组中可以调用类Object的所有方法
- 二每个数组都有一 个由public final修饰的成员变量: length,即数组含有元素 的个数( length可以是正数或零)
- ·数组元素
- 数组中的变量被称作数组的元素
- 元素没有名字,通过数组名字和非负整数下标值引用数组元素
二、一维数组
一维数组实质上是一组同类型的数据的线性集合。假设在程序需要处理一组数据,或者传递一组数据时,可以应用这种类型的数组。
1.1创建一维数组
数组作为对象允许使用关键字“new”进行内存分配,在使用数组前必须首先定义数组变量所属的类型。创建一维数组有两种形式,分别为:先声明,再用new关键字进行内存分配;声明数组的同时为数组分配内存。
1.先声明,在使用new关键字进行内存分配
数组的元素类型决定了数组的数据类型。他可以是Java中的任意数据类型,包括简单类型和组合类型。数组的名字为一个合法的标识符。符号“[]”指明该变量是一个数组的类型变量。单个“[]”表示要创建的数组是一个一维数组。
两种方式,语法:
数组元素类型 数组名字[];
数组元素类型[] 数组名字;
代码示例:
int arr[]; //声明一个int型的数组,数组中的每个元素都是int类型的数值
String[] str; //声明一个String型的数组,每个元素都是String类型的数值
数组被声明后还不可以立即访问它的任何元素,因为声明数组只是给出了数组名字和元素的数据类型。想要真正的使用数组,还要为它分配内存空间。在为数组分配内存空间时必须指明数组的长度。并且数组是通过下标来区分数组中的不同元素,例如长度为5的数组,其中元素的下标为0~4。
为数组分配内存空间的语法格式如下:
数组名字 = new 数组中元素的数据类型[数组元素的个数];
各部分含义:
- 数组名字:被连接到数组变量的名称
- 数组中元素的数据类型:Java中的数据类型
- 数组元素的个数:指定数组中变量的个数,即数组的长度
- 使用new关键字为数组分配内存时,整型数组中各个元素的初始值都为0
代码示例:
arr = new int[]; //创建一个长度为5(5个元素)的整型数组,引用变量arr引用这个数组
一维数组的内存分配模式:
2.声明数组的同时为数组分配内存
这种方法诗经数组的声明和内存的分配结合在一起执行。
语法:
数组元素的类型 数组名 = new 数组元素的类型[数组元素的个数];
这种创建数组的方法是开发Java程序过程中普遍的做法。
代码示例:
int money = new int[5]; //创建数组money,并指定了数组长度为5
1.2初始化一维数组
数组与基本数据类型一样,都可以进行初始化操作。数组的初始化可分别初始化数组中的每个元素。
两种形式(语法):
int arr[] = new int{1,3,5,7};
int arr2[] = {2,4,6,8};
数组的初始化就是包括在大括号之内的表达式列表,各个元素之间用逗号隔开,系统自动为数组分配一定的空间。
1.3使用一维数组
在Java集合中一维数组是常见的一种数据结构。安排一段代码,一起来理解一下。
代码示例:
public class Test23 { //创建类
public static void main(String[] args) { //主方法
//创建并舒适话一个int型的一维数组
int day[] = new int[]{31,28,30,31,30,31,31,31,30,31,30,31};
for (int i = 0; i < 12; i++) { //for循环
System.out.println("\t" + (i+1) + "月有" + day[i] + "天");
System.out.println("---------------------------------"); //输出信息
}
}
}
运行结果:
三、二维数组
若一个数组中的所有元素都是数组,那么这个这个元素均为数组的数组就是二维数组。
二维数组常用于表示表,中的信息以行和列的形式组织,第一个下标代表元素所在的行,第二个下表代表元素所在的列。二维数组可以看做是特殊的一维数组。
3.1创建二维数组
创建二维数组和创建一维数组一样,都有两种形式。分别为:先声明,再用new关键字进行内存分配;声明数组的同时为数组分配内存。
1.先声明,再使用new关键字进行内存分配
语法:
数组元素的类型 数组名字[][];
数组元素的类型[][] 数组名字;
代码示例:
int arr[][];
对于高维数组,有两种为数组分配内存的方式:
(1)直接为每一维分配内存空间
代码示例:
//创建了一个名为arr的二维数组,其中包括两个长度为4的一维数组。
arr = new int[2][4];
二维数组的内存分配方式一:
(2)分别为每一维分配内存空间
代码示例:
arr = new [2][];
arr[0] = new int[2];
arr[1] = new int[4];
2.声明数组的同时为数组分配内存
第二种方式同第一种实现功能相同,使用这种方式为二维数组分配内存时,首先指定最左边维数的内存,然后单独地给余下的维数分配内存。
二维数组的内存分配方式二:
3.2二维数组初始化
与一维数组的初始化类似,也可以用大括号来完成
语法:
type name[][] = {value1,value2,...,value};
各部分含义:
- type:数组的数据类型
- name:数组名称,一个合法的标识符
- value:数组中各个元素的值
代码示例:
int arr[][] = {{1,3},{2,4}};
2.3使用二维数组
二维数组在实际的开发中的应用也比较广泛,安排一段代码一起来来感受一下
代码示例:
public class Test24 { //创建类
public static void main(String[] args) { //主方法
int arr[][] = new int[3][4]; //定义二维数组
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) { //循环遍历数组中的每一个元素
System.out.print(arr[i][j]); //将数组的元素输出
}
System.out.println(); //空格
}
}
}
运行结果:
对于整型二维数组,创建成功后系统会默认赋值给数组中每个元素初始值为0。
希望有所帮助!!!
关注我持续更新!!!