数组是最常见的一种数据结构,分为一维数组、二维数组以及多维数组,是把相同数据类型的元素,用一个标识符封装到一起的基本数据序列或者对象序列。
数组的主要内容如下:
数组是具有相同数据类型的一组数据的集合。数组中的每个元素具有相同的数据类型。在Java中将数组看作一个对象,虽然基本数据类型不是对象,但是由基本数据类型数据组成的数组则是对象。在程序设计中利用数组存储和处理数据可以起到很好的数据管理作用。
- 变量和数组的关系
一、一维数组
一维数组是一组相同数据类型的线性集合。例如学生排成一列队伍,这个队伍就是数组,学生就是数组中的每个元素。
1、创建一维数组
数组元素的数据类型决定了数组的类型。他们可以是Java中任意的数据类型,包括基本数据类型和其他引用类型。数组的名字为一个合法的标识符,符号"[]“指明变量是一个数组类型变量,单个”[]"是指创建的数组是一个一维数组。
(1)声明一维数组的两种方式:
数组元素类型 数组名字 [];
数组元素类型[] 数组名字;
(2)声明一维数组的语法:
int arr[];
double[] dou[];
....
short[] sht[];
声明数组后,还不能访问它的任何元素,需要给数组分配内存空间
(3)给声明好的数组分配内存空间
数组名字 = new 数组元素类型[数组元素的个数];
- 数组名字:声明好的要使用的数组名称;
- 数组元素个数:执行数组中元素变量的个数,即数组的长度;
arr = new int[5] //整型数组长度为5
(4)一维数组的内存模式
声明好数组并且给数组分配内存空间后,就完成了准备工作。接下来给数组填充元素,也就是创建数组,这个数组就可以被访问了。在创建数组过程中,数组对象会被赋给引用变量,假设我们引用的变量是arr,就是指引用变量arr这个数组。当我们要访问被创建的每个元素时,需要通过每个元素在arr中的下标,也就是索引来进行。
数组的下标时从0开始的,假设我们创建的数组有5个元素,这些元素的索引就是0~4。
(5)声明数组的同时给数组分配内存空间
我们可以用复合语句将声明数组和给数组分配内存空间这两个动作同时完成。这也是编写java程序过程中常用的方法:
int month[] = new int[12];
2、给一维数组赋值
数组可以和基本数据类型一样进行初始化操作,即给数组赋值。数组的初始化可分别初始化数组中的每个元素。
(1)数组初始化的方法
int a [] = {
1,2,3}; //第一种方式
int b [] = new int[]{
4,5,6}; //第二种方式
int c [] = new int[5]; //第三种方式
c[0] = 7;
c[1] = 8;
c[2] = 9;
3、获取数组长度
初始化数组时会给数组分配内存空间,内存空间的大小决定了数组的存储能力。如果不知道数组被分配的内存空间情况,我们可以使用数组对象自带的length属性来查看:
arr.length;
- arr:数组名
- length:数组长度属性,返回int值
实例1:获取班级总人数
创建GetArrayLength类,将班级每个人的名字存在一个字符串数组,然后调用数组的length属性查看班级总人数。
public class GetArrayLength {
public static void main(String[] args) {
// TODO Auto-generated method stub
String class1[] = {
"Bob","Alice","Tom","Tony"};
System.out.println("此班级共有"+ class1.length + "人");
}
}
Console:
此班级共有4人
4、打印数组元素
数组在内存中以对象的形式存储,直接访问数组对象打印的是数组的内存地址,不能直接打印数组元素。数组中的元素可以被访问,我们依次访问数组元素就可以打印出数组。
实例2:打印一年中各月的天数
在项目中创建GetDay类,在主方法中创建int型数组,并实现将各月的天数输出。
public class GetDay {
public static void main(String[] args) {
// TODO Auto-generated method stub
int day[] = new int[] {
31,28,31,30,31,30,31,31,30,31,30,31};
for (int i = 0 ; i < day.length;i++) {
System.out.println((i+1) + "月的天数是:"+day[i]);
}
}
}
Console: