大家好,我是青空。
今天青空将要给大家介绍Java 数组。数组在Java表示为一种数据结构,用来存储一组相同类型的数据。可以通过一个整型下标访问数组种的每一个数据。
声明方式
下面我们来了解一下,声明一个数组变量,需要做哪些操作。我们直接来看示例:
int[] a;
从示例可以看到,Java数组的声明方式很简单,先定义数组类型为 int,数组类型后面紧跟[], 然后是变量名称。
我们刚才只是简单的做了声明,并没有对数组变量a 进行初始化。 数组的初始化在Java中需要通过new运算符来创建。
int[] a = new int[6];
示例中,表示创建了一个可以存储6个整数的数组。数组长度不要求是常量:new int[n]
会创建长度为n的数组。
初始化
数组的声明方式我们已经掌握了,现在我们来看怎么做初始化。
int[] smallPrimes = {2,3,5,7,11};
这里跟我们之前说的创建语句怎么不一样?没有使用到new 运算符。没错,这里使用了简化书写形式。等同于下面的书写方式
int[] smallPrimes = new int[] {2,3,5,7,11};
你有没有注意到,这里new int[] 没有指定数组的长度。Java默认就会以初始化数组数据的个数作为数组的长度。
数组拷贝
通常,我们拷贝一份数组数据只需要直接赋值就行了。
int[] smallPrimes = {2, 3, 5, 7};
int newSmallPrimes = smallPrimes;
这样操作就可以了。但是这样使用有时会出现问题, 因为 smallPrimes 和 newSmallPrimes 这两个变量是引用同一个数组。 所以在使用的时候千万要注意这个问题。平常我们使用的时候,尽可能的重新拷贝一份新的数组。
int[] copiedSmallPrimes = Arrays.copyOf(smallPrimes, smallPrimes.length);
在Java中,重新拷贝也是非常简单的,只需要通过 Arrays.copyOf
就可以完成。Arrays.copyOf
的第2个参数是新数组的长度。 通过这个数组的长度设置可以出现以下几种情况。
- 长度大于原始数组的长度,如果数组元素是数值型, 那么多余的元素将被赋值为 0 ; 如果数组元素是布尔型, 则将赋值为 false。
- 长度小于原始数组的长度, 则只拷贝最前面的数据元素。
数组排序
我们在使用数组的时候,经常会使用到排序的操作。我们这里讲讲数值型数组的排序是怎么样的,这边暂时不考虑复杂类型的情况。
通常我们使用 Arrays.sort 就可以完成数组的排序。
int[] test2 = new int[] {23,3,45,67,8};
Arrays.sort(test2);
多维数组
多维数组将使用多个下标访问数组元素, 它适用于表示表格或更加复杂的排列形式。
在 Java 中, 声明一个二维数组相当简单。 例如:
double[][] balances;
我们访问的时候也比较简单 balances[i][j]
即可。
总结
今天我们主要学习了Java数组的基础性的知识点。