Java数组用法总结以及常见使用错误

因为写算法题经常会用到数组,而且刚开始因为使用不太熟悉,经常会出错而且有时候还不知道为什么会出错,因为在这里总结一下。

- 数组?

数组用来顺序存储一系列数据,且每一项都需具有相同的类型(基本数据类型、类或者相同的父类)。

- 数组的创建和初始化

在Java中,创建数组需要以下三个步骤:

  1. 声明数组的名字和类型
  2. 创建数组(需要指定数组的长度
  3. 初始化数组元素

实际执行过程中,可以分步执行,也可以一步到位,常用的三种创建数组的方式如下:

  • 完整模式
int[] intArray;   //声明数组名字(intArray)和类型(int)
intArray = new int[N];  //用new创建数组,长度为N
for(int i=0; i<N-1; i++)   //for循环初始化数组元素
	intArray[i] = 10;    //将所有值都初始化为10
  • 简化写法
int[] intArray = new int[N];  //声明数组的同时创建数组
for(int i=0; i<N-1; i++)
	intArray[i] = 10;
  • 声明初始化
int[] intArray = {1, 2, 3, 4, 5, 6, 7}; //声明、创建数组的同时初始化数组,数组的长度就是花括号内元素个数

在使用new创建数组对象时,其所有元素都会被自动初始化(数字数组为0,布尔数组为false,字符数组为’\0’,对象数组为null);当类型为对象数组时,由于初始值为null,因此使用之前必须给将对象赋给每个数组元素。

- 数组的使用

创建并初始化数组后,就可以访问、修改和检查数组中各个元素的值。

  • 访问数组元素

通过数组名加上方括号[ ]作为索引来访问数组中的元素。需要注意的是,数组元素的下标是从0开始的,即当有N个元素时,下标的范围为0 ~ N-1。Java会自动检查所访问的下标是否越界,如果数组大小为N,但是你想要访问的元素下标<0或者>N-1,程序会抛出异常ArrayIndexOutOfBoundsException并终止。如果以上面的intArray数组为例:

intArray[0];    //返回1
intArray[7];    //抛出异常
  • 修改数组元素

在数组名和下标后面加上赋值运算符和要指定的值。

intArray[0] = 0; //intArray变成:{0, 2, 3, 4, 5, 6, 7}
  • 给数组起别名

Java对象数组是一组到对象的引用,数组名表示的是整个数组,而非数组中的数据。如果将一个数组变量赋予另一个变量,则两个变量将会指向同一个数组。改变其中一个数组位置 i 的值,另一个数组中 i 位置的值也会被改变。

int[] intArrayNew = intArray;
intArrayNew[2] = 5; //此时intArray[2]的值也变为5

当需要将数组复制一份时,应该重新声明,创建并初始化一个新的数组,然后将原数组中的元素值挨个复制到新数组。

int[] intArrayNew = new int[N];
for(int i=0; i<N-1; i++) 
	intArrayNew[i] = intArray[i];

- 二维数组

二维数组就是一维数组的数组。创建二维数组的方法和一维数组类似,只是使用两个方括号[ ],且第一维M(第一个方括号)是行数,第二维N(第二个方括号)是列数:

int[][] intArray = new int[M][N];
intArray[i][j];  //访问第i行第j列的元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值