Java数组的创建和初始化

Java数组的创建和初始化

一、   一维数组的创建和初始化

1、      基本数据类型的静态初始化

int [ ] Array = { 1 , 2 , 3 , 4 } ;

或者

int [ ] Array = new int [ ]{1,2,3,4} ;

2、      基本数据类型的动态初始化

int [ ] Array = new int [ 100 ] ;

Array[ 0 ] = 0 ;

Array[ 1 ] = 1 ;

…………………

Array[ 2 ] = 99 ;

       基本数据类型的一维数组的内存布局

 

1、      引用数据类型的静态初始化

class Point

{

   int x , y ;

   Point( int a , int b)

   {

      x = a ;

      y = b ;

   }

}

 

Point [ ] pa = {

new Point(1,4),new Point(3,9),new Point(15,18) } ;

或者

Point [ ] pa = new Point [ ]{

new Point(1,4),new Point(3,9),new Point(15,18) } ;

2、      引用数据类型的动态初始化

Point [ ] pa = new Point [ 3 ] ;

pa[ 0 ] = new Point(1,4) ;

pa[ 1 ] = new Point(3,9);

pa[ 2 ] = new Point(15,18) ; 

引用数据类型的一维数组的内存布局

二、   二维数组的创建和初始化

1、      基本数据类型的静态初始化

int [ ][ ] a = {{1,2},{3,4}} ;

或者

int [ ][ ] a = new int [ ][ ]{{1,2},{3,4} } ;

2、      基本数据类型的动态初始化

①  方案

int [ ][ ] a = new int [ 2 ][ 3 ] ;

a[0][0] = 0 ;

a[0][1] = 1 ;

a[0][2] = 2 ;  …………….

②  方案

int [ ][ ] a = new int [ 2 ][ ] ;

a[ 0 ] = new int [3] ;

a[ 1 ] = new int [3] ;

 

基本数据类型的二维数组的内存分布

1、      引用数据类型的静态初始化

Point [ ][ ] pt ={

{new Point(1,2),new Point(3,4)},

{new Point(5,6),new Point(7,8)},

{new Point(9,10),new Point(11,12)}

} ;

或者

Point [ ][ ] pt = new Point[ ][ ] {

{new Point(1,2),new Point(3,4)},

{new Point(5,6),new Point(7,8)},

{new Point(9,10),new Point(11,12)}

} ;

 

2、      引用类型的动态初始化

①  方法

Point[ ][ ]pt = new Point[3][2] ;

Point[0][0]=new Point(1,2) ;

Point[0][1]=new Point(3,4);

Point[1][0]=new Point(5,6);

…………………………………

②  方法

Point [ ][ ] pt = new Point[3][ ] ;

pt[0] = new Point[ 2 ] ;

pt[1] = new Point[ 2 ] ;

pt[2] = new Point[ 2 ] ;

pt[0][0] =new Point(1,2);

pt[0][1] =new Point(3,4);

pt[1][0] =new Point(5,6);

pt[1][1] =new Point(7,8);

pt[2][0] =new Point(9,10);

pt[2][1] =new Point(11,12);

引用数据类型二维数组的内存分布

第二种方法充分体现了:

元素是一维数组的一维数组就是二维数组

注:

①  其中的String 类的数组也可以这样创建

String [][] st={{“qwe”,”adsd”},{“asdf”,”ghjg”}};

,因为字符串常量本身就是一个字符串对象,这样较为简洁;

②  诸如 :new 数据类型 [元素个数] 语句中,“元素个数”可以是具体的数字,亦可以是int型变量

③  我们已经知道了,多维数组实际上就是一维数组的组合,在任何一个维度的内存空间上除了并排的引用或者并排的数据之外,还开辟了一个 int length 型的内存空间,存储当前维度的“元素个数“,即

从而pt.length 存储的是3 , pt[0].lenght=pt[1].length

=pt[2].length=2 ;

④  length的属性为 public final int length , 因而程序中可以读取的长度,但不能够改变数组的长度

posted @ 2014-08-11 09:50  RoperLee  阅读(678)  评论(0)    收藏  举报