3.7 Java 数组

数组是一组相关的数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组。

一维数组

一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的。
要使用Java数组,必须经过两个步骤:(1)声明数组;(2)分配内存给该数组。
声明形式一:

  • 声明一维数组:数据类型 数组名[ ]= null ;
  • 分配内存给数组:数组名 = new 数据类型[ 长度 ] ;

声明形式二:

  • 声明一维数组:数据类型[ ] 数组名 = null

取得数组长度

在 Java 中取得数组的长度(也就是数组元素的长度)可以利用“数组名称.length”完成,方法返回字符串中的字符数。空字符串和 null 字符串的长度均为0。
格式:

数组名称.length

一旦创建了数组,就不能再改变它的大小(尽管可以改变每一个数组元素)。如果经常需要在运行过程中扩展数组的大小,就应该使用另一种数据结构——数组列表。

数组的静态初始化

数组的内容分为动态初始化和静态初始化两种。动态初始化是先声明数组之后再为数组中的每个内容赋值。静态初始化时在数组声明时就指定其具体内容。
静态初始化格式:

数组类型[ ] 数组名 = { 初值0, 初值1 , 初值2 , 初值3 ,……. }

二维数组

二维数组声明方式和一维数组类似,内存的分配也一样是用 new 这个关键字。其声明与分配内存的格式如下所示:
动态初始化1:

数据类型[ ][ ] 数组名 ;
数组名 = new 数据类型[ 行的个数 ][ 列的个数 ] ;

动态初始化2:

数据类型[ ][ ] 数组名 = new 数据类型[ 行的个数 ][ 列的个数 ] ;

静态初始化:

数据类型[ ][ ] 数组名 ={ { 第0行初值}, { 第1行初值}, ……….{ 第n行初值}, };

访问注意

对于数组的访问采用“数组名称[ 下标 ]”的方式,之前一共开辟了三个空间大小的数组,所以下标的取值是0~2,假设程序中取出的内容超过了这个下标,如“score[3]”,则程序运行的时候会出现以下的错误提示:

java.lang.ArrayindexOutOfBoundsException. 3

数组排序

要想对数值型的数组进行排序,可以使用 Arrays 类中的 sort 方法;

1
2
3
int[ ] a = new int[ 10000] ;
……..
Arrays . sort( a );

数组拷贝

1
2
System.arraycopy( a , 0 , b , 0 , 10) ; // 例子
System.arraycopy( src , srcPos , dest , destPos , length) ;
  • src : src 为 object 类型的数组引用,即要复制的数组。
  • srcPos :srcPos 为 int 型的要复制数组的下标值,即要复制数组的开始位置。
  • dest :dest 为 object 类型的新数组引用。
  • destPos :destPos 为 int 型新数组的下标开始值。
  • length :length 为 int 型的数组长度。
坚持原创技术分享,您的支持将鼓励我继续创作!