java萌新的进化旅程05

初识数组

这篇文章主要是初步了解数组
涉及的内容有数组的数组的概念,数组的声明,数组的实例化、初始化,数组的基本访问操作。

一、数组概述

数组(array)是一种数据结构,包含相同类型的一组数据。数组本身是数组引用类型对象。数组元素可以是任何数据类型(简单类型或引用类型),包含数组类型。
数组有一个“秩(rank)”,确定和每个数组元素关联的索引个数,其值是数组类型的方括号对([ ])的个数。数组的秩又称为数组的维度。“秩”为1的数组称为一维数组,“秩”大于1的数组称为多维数组。维度大小确定的多维数组通常称为两维数组、三维数组等。
数组的每个维度都有一个关联的长度(length),它是一个大于或等于0的整数。创建数组实例时,将确定维度和各维度的长度,它们在该组数组实例的整个生存期内保持不变。换而言之,对于一个已存在的数组实例,既不能更改它的维度,也不能调整它的维度大小。数组中的元素总数是数组中各维度和长度的乘积。

二、数组的声明

数组必须先声明。因为数组类型为引用类型,数组变量的声明只是为数组实例的引用留出空间。数组的声明有下列两种形式:

类型[ ]数组变量名; //一般采用这种形式,类型[ ]更容易被理解为该类型的数组
类型 数组变量名[ ];//等同于“类型[ ]数组变量名; ”

例如:

int[ ] arr1;              \\声明一个整形数组一般建议采用该形式
int arr2[ ];              \\声明一个整形数组等同于"int[] arr2;"
byte[ ] arrayByte1;       \\声明一个byte类型的数组
String[ ] arrStr1;        \\声明一个String类型的数组
Object[ ] arrObj1;        \\声明一个Object类型的数组

三、数组的实例化和初始化

数组在声明后必须初始化才能使用。数组实例在运行时使用new运算符动态创建(即实例化)。new运算符指定数组实例化的长度。new运算符自动将数组的元素初始化为默认值:简单数值类型数组元素的默认值设置为零;char类型数组元素初始化为0(\u0000);boolean类型的数组元素被初始化为false;而引用类型数组元素被初始化为null。使用new运算符创建数组时,还可以通过{ }初始化数组的元素。其基本形式如下:

数组变量名=new 数组类型[数组元素的个数];//创建{实例化}数组 类型[ ] 数组变量名=new
数组类型[数组元素的个数];//同时声明和创建数组 数组变量名=new 数组类型[ ]
{元素0,元素1,…,元素n-1};//创建并初始化数组 类型[ ] 数组变量名=new 数组类型[ ]
{元素0,元素1,…,元素n-1};//同时声明、创建并初始化数组 类型[ ]
数组变量名={元素0,元素1,…,元素n-1};//同时声明并初始化数组(将自动创建数组)

注意:如果通过{ }初始化数组的元素,则使用new运算符创建数组不需要也不能指定数组元素的个数,java编译器将自动推断数组元素的个数。声明数组时,可直接初始化(无需使用new运算符创建数组),java编译器将自动创建数组(实例化)。如:

int [] arr1,arr2;                            \\声明数组
arr1 = new int [10];                         \\创建一个可以储存10个整数的数组
int [] arr3 = new int [10];                  \\创建一个可以储存10个整数的数组:声明和实例化使用一条语句实现 
arr2 = new int []{1,2,3,4,5};                \\创建并实例化一个可以储存5个整数的数组
boolean[] arrbool1 = new boolean[] {true,false,true,false};
                                             \\同时声明、创建并初始化一个boolean数组
int [] arr4 = {1,2,3,4};                     \\同时声明并初始化一个储存4个整数的int数组(java编译器将自动创建数组)
arrbyte1 = new int[5] {1,2,3,4,5};           \\编译错误,初始化时不能指定数组元素的个数 
arr1 = {1,2,3,4,5,6,7,8,9,10};               \\编译错误,只能在声明时直接初始化

四、数组的基本访问操作

通过数组下标(或称索引)来访问数组中的数据元素。特别的,可以使用for each循环访问数组的各个元素。数组下标(索引)从0开始,具有n个元素(即维度长度为n)的数组的下标是0~n-1。
注意:访问数组(假设数组元素个数为n时),如果使用了超越数组下标范围(0~n-1)的索引,即数组越界,则会引发ArrayIndexOutOfBoundsException。
通过数组的length属性,可以获取数组的长度。例如:

int [] arr1 = new int[10];               \\创建一个储存10个整数的数组
arr1[1] = 123;                           \\设置数组arr1的第二个元素为123
System.out.println(arr[0]);              \\打印数组arr1的第一个元素
int len1 = arr.length;                   \\返回数组arr1的长度
int len2 = arr1[].length;                \\编译错误,arr1[]不是数组,而是int
System.out.println(arr1[10]);            \\数组越界,引发异常ArrayIndexOutOfBoundsException
for (int i : arr1){                      \\使用for each 循环访问数组的各个元素
	System.out.println(i+",");
}


到这里为止,数组的一些基础知识已经写完了,下一篇文章将介绍Java类库中操作数组的类和方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值