数组是我们非常常见的一种数据结构。
在 Java 中也不意外,通常我们会对数组进行一些操作,包括插入,删除,查找等。其实在实际的运用过程中,我们可能会用到 Java 提供的集合类型。
这些类型比数组操作更加简便,通常用的是 List,Map,Set 等。
在很多公司面试的时候,为了考察面试人的基本程序功底,并且也为了避免面试的面试人使用很多 Java 的高级特性,而特定规定使用数组。
正是因为有上面的一些规定,导致本人对面试中做题和刷题的反感。
不管怎么样,现实就是这么残酷,为了找一份工作,你可能还是需要对 Java 的数组有一些基本的了解。
定义
Java 语言中提供的数组是用来存储固定大小的同类型元素。
这里有一个重点就是 Java 的数组的长度是固定的,在定义好数组后,数组的长度就不能改变了。
可以有下面 2 种方法来定义数组变量。
int[] intArraySize = new int[10];
Integer intArrayW[] = new Integer[10];
因为数组是固定长度的,因此你在定义完成 Java 的数组后,你需要对数组长度进行初始化。
在这里我们使用的是为数组设定长度的方法进行初始化的。
在上面的语句中,有 2 中定义数组的方法,一种是类型后面加 [],这种方法是上面的第一句话。
另外一种方法就是在变量后面加 [] 来定义数组。
我们推荐使用第一种方法来进行定义,这种方法更加简单明确。
初始化
数组定义完成后可以有 2 种方法进行初始化。
如果你只定义了数组的长度的话,你就需要在这个时候直接将值插入数组了,如果你没有插入的话,这个数组只等于在内存中划分了存储空间罢了。
使用长度初始化
例如代码:
int[] intArraySize = new int[3];
进行数组初始化。
通过查看内存,我们可以看到内存中初始化的数组,已经划分存储空间了,但是值都是 0。
Integer intArrayW[] = new Integer[3];
代码中,我们使用 int 的包装类来进行定义的,就是 int 的对象。
我们通过 debug 可以看到,数组空间也已经初始化了,但是看到 intArrayW 其实是一个对象,这个对象是中的所有元素 null 的。如果这个时候你直接访问,那么将会得到空对象异常。
使用数据初始化
另外一种初始化数组的方法就是使用数据来进行初始化了。
你可以通过下面的语句对数组直接赋值。
int[] intArrayValue = {1,2,3};
然后你再查看内存,你可以看到你已经定义了一个长度为 3 的数组,这个数组中的值分别为 1,2,3。
在面试的时候做题,通常可能会考虑使用这种初始化的方式。尤其是在字符串的处理上。
因为只有这样初始化你才能够在下一步的代码中获得数据,否则你将需要使用另外的步骤来进行数据插入。
考察下面的代码:
String[] strArray = {"COM","OSSEZ","US"};
上面的代码,我们就已经初始化了一个字符串的数组,通过上面的初始化为下一步的程序调用做好准备。
因为在面试的时候,很多面试题都需要先定义数据。
上面的几个步骤能够帮助你迅速完成数据定义的过程。
当然,如果只需要定义字符串,你也可以直接定义。