java中的数组语法

如题所述

一维数组
一、声明:
数组要先声明然后才能使用。
语法:数据类型 数组名[ ];或数据类型[ ] 数组名;
数据类型既可以是基本数据类型也可以是引用数据类型,数组名可以是任意的合法变量名。
如:
int [ ] score;
double height[ ];
String[ ] name;
注意,不可在数组名后的方括号内指定数组元素的个数,如int sum[10];是错误的。
二、分配空间:
声明了数组只是得到了一个存放数组的变量,并没有为数组元素分配空间,不能够使用,因此要为数组分配空间,这样数组的每个元素才有一个空间进行存储。
语法:数组名=new 数据类型[数组长度];
其中,数组长度就是能够存放的元素个数,显然应该是大于0的整数。
例如:
score=new int [30];
height =new double[10];
name=new String [30];
也可以在声明数组时就给它分配空间。
语法:数据类型 数组名[ ]=new 数据类型[数组长度];
如:int sum[ ]=new int[100];
三、赋值:
给数组元素赋值。有三种方法赋值。
方法一
语法:数组名[下标值]=值;
例如:
score[0]=89;
score[1]=56;
score[2]=75;
方法二
每一次赋值时,只有下标在变,因此,可以使用循环给数组赋值。
例如:
for (int index = 0; index < args.length; index++) {
double num = Double.parseDouble(args[index]);
}
方法三
直接创建数组,将声明数组、分配空间和赋值合并完成。
语法:数据类型 数组名[ ]={值1, 值2, 值3, …, 值n };
例如:使用下列方式来创建score数组
int score[]={60,75,64,73,45};//创建一个长度为5的数组score
同时它也等价于下面的代码:int score=new int[ ]{60,75,64,73,45};
注意,直接创建并赋值的方式一般在数组元素比较少的情况下使用。它必须一并完成,如下代码是不合法的:
int[ ] score;
score={60,75,64,73,45};//错误!!

二维数组
一、声明二维数组
语法:数据类型 数组名[ ] [ ];或 数组类型[][] 数组名;或 数组类型[] 数组名[];
例如:
float boy[][];
char array[][];
int array_name[ ][ ]; 或 int [ ][ ] array_name; 或 int [ ] array_name[ ];
二、为二维数组分配空间
(1)直接为每一维分配空间
例如:int a[][]=new int[3][2];//建立3行2列数组
(2)高维开始,分别为每一维分配空间
例如:
int a[][]=new int[3][];//指定最高维的长度为3,然后分别为每一维分配空间
a[0]=new int[2];
a[1]=new int[3];
a[2]=new int[4];
三、二维数组的初始化
(1)直接为数组元素赋值
例如:
int a[][]=new int[2][2];
a[0][0]=1;
a[0][1]=2;
a[1][0]=3;
a[1][1]=4;
(2)在数组声明时为数组初始化
例如:int a[][]={{1},{2,3},{4,5,6}};
四、二维数组的引用
格式为:数组名[下标1][ 下标2];
下标1,下标2分为二维数组的第一、二维下标,同一维数组一样,也可为整型常量和表达式,并且数组下标都从0开始。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-22
数组
内存中的连续空间
数组是一次性定义多个相同类型的变量
Java中一个数组就是一个对象,有属性,没有方法

int[] a; //定义一个数组,变量名就是指向数组首地址的指针
a=new int[10]; //为数组分配空间
a.length; //得到数组的长度
数组创建后有初始值:数字类型为0 布尔类型为false 引用类型为null
String[] 默认值 null

初始化、创建、和声明在同一时间
int[] i = {0,1}; //显示初始化
int[] i = new int[]{0,1}; //注意:这样显示的初始化的时候,new int[] 中括号中必须是空的,不能填数字
Car[] c = {new Car(),new Car()};

数组拷贝
System.arrayCopy(Object src, int srcPos, Object dest, int destPos, int length);
src源数组,srcPos从第几位开始拷贝(数组下标,从0开始),dest目标数组,destPos目标数组放置的起始位置,length,表示要拷贝的长度。拷贝一个数组到另一个数组。

多维数组
1) 有效定义
int[][] i1 = new int[2][3]; (同时给定一维,二维的空间)
int[][] i2 = new int[2][]; (给定一维的空间,二维空间待定,不规则的二维数组)
i2[0] = new int[2],i2[1] = new int[3];
* C++中 int[][] =new int[][3];有效
2) 无效定义
int[][] i1 = new int[][3];
3) 数组长度 ------------数组的属性length(在二维数组中这个属性只代表第一维的长度)
int[] i = new int[5];
int len = i.length; //len = 5;

Student[][] st = new Student[4][6];
len = st.length; //len = 4;
len = st[0].length; //len = 6;
第2个回答  2011-03-22
第3个回答  推荐于2017-11-28
数组定义:类型[] xxx; 类型 a[];
如:int[] ary = new int[5]; int ary2[] = new int[7];

数组定义的时候必须指定后面的长度.

数组元素引用:数组[index]; ary[0] ~ ary[ary.lenth-1]
数组下标从0开始,丛长度-1结束本回答被网友采纳
第4个回答  2011-03-22
数组:

1,声明数组:例如:一种 int[] x; 另一种:int x[];
注意:java在数组定义时并不为数组元素分配内存,所有这个[]中没有指明数组长度;int[100] x;//非法的;声明数组不指定长度;
2 创建数组(为数组元素分配内存)格式如:int[] a = new int[100];//默认元素的值为0;