数组是由一组相同类型的变量所组成的数据类型,它们是由一个共同的名称来表示的。数组可分为一维数组,二维数组和多维数组
一.一维数组
声明一维数组 数据类型 数组名[] = null;
分配内存给数组 数组名 = new 数据类型[长度];
如:
int sss[] = null;
sss = new int[4];
int aaa[] = new int[10];
如果要访问数组中的元素,可以利用索引来完成。数组索引从0开始,以sss[10]为例,sss[0]就是第一个元素,sss[1]就是第二个元素,sss[9]就是第十个元素,如下
数组赋值并输出
public static void main(String[] args) {
// TODO Auto-generated method stub
int aaa[] = new int[10];
for(int x = 0; x < 10; x++){
aaa[x] = x * 2 + 1;
}
for(int x = 0; x < 10; x++){
System.out.println("aaa[" + x +"] = " + aaa[x]);
}
}
程序运行结果为:
aaa[0] = 1
aaa[1] = 3
aaa[2] = 5
aaa[3] = 7
aaa[4] = 9
aaa[5] = 11
aaa[6] = 13
aaa[7] = 15
aaa[8] = 17
aaa[9] = 19
数组长度如下:
public static void main(String[] args) {
// TODO Auto-generated method stub
int aaa[] = new int[10];
System.out.println("aaa的长度为 " + aaa.length);
}
数组可赋值如下:
int aaa[] = {12,12,23,34,45,56,67,78,89,23,4};
public static void main(String[] args) {
// TODO Auto-generated method stub
int aaa[] = {12,12,23,34,45,56,67,78,89,23,4};
for(int x = 1; x < aaa.length; x++){
for(int y = 0;y < aaa.length;y++){
if(aaa[x] < aaa[y]){
int z = aaa[x];
aaa[x] = aaa[y];
aaa[y] = z;
}
}
}
for(int i = 0;i < aaa.length; i++){
System.out.println(aaa[i]);
}
}
程序运行结果为:
4
12
12
23
23
34
45
56
67
78
89
二.二维数组
二维数组的声明与赋值:
数据类型 数组名[][];
数组名 = new 数据类型[行的个数][列的个数];
或者 数据类型 数组名[][] = new 数据类型[行的个数][列的个数]; 如:
int aaa[][];
aaa = new int[2][2];
int sss[][] = new int[2][2];
public static void main(String[] args) {
// TODO Auto-generated method stub
int aaa[][] = {{1,2},{3,4,5,6},{2,4,3},{5,5,5,5,5,3}};
for(int i = 0;i < aaa.length;i++){
for(int j = 0;j < aaa[i].length;j++){
System.out.print(aaa[i][j] + "\t");
}
System.out.println("");
}
}
程序运行结果为:
1 2
3 4 5 6
2 4 3
5 5 5 5 5 3
三.传递和返回数组
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] ={1,2,3,4};
fun(a);
for(int i = 0;i < a.length;i++){
System.out.print(a[i] + ",");
}
}
public static void fun(int x[]){
x[0] = 990;
}
程序运行结果为:
990,2,3,4,
public static void main(String[] args) {
// TODO Auto-generated method stub
int s[] = fun();
print(s);
}
public static int[] fun(){
int a[] ={1,2,3,4};
return a;
}
public static void print(int x[]){
for(int i = 0;i < x.length;i++){
System.out.print(x[i] + ",");
}
}
程序运行结果为:
12,3,4,
foreach输出
for(数据类型 变量名称:数组名称){
…
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("不传参数");
fun();
System.out.println("传3个参数");
fun(1,2,3);
System.out.println("");
System.out.println("传6个参数");
fun(1,2,3,4,5,6);
}
public static void fun(int... arg){
for(int x:arg){
System.out.print(x + ",");
}
}
程序运行结果为:
不传参数
传3个参数
1,2,3,
传6个参数
1,2,3,4,5,6,