Java数组的创建及引用


数组的概念

数组是由同类型的数据元素构成的一种数据结构。数据元素可以是基本数据类型,也可以是引用类型。通过数组名和数组元素下标(或称为索引)可以引用数组中的元素。

每个数组都有一个名为length成员变量,用来表示数组所包含元素的个数,length知恩感是正整数或者零。数组创建之后length就不能被改变。

数组的创建和引用

数组的声明

声明一维数组语法形式如下:

Type arrayName[];
或者 Type[] arrayName;

其中Type为数组的类型,可以是基本数据类型也可以是引用类型;
arrayName为数组名,可以是任意的Java合法标识符。
声明数组时无需制定数组元素的个数,也不为数组元素分配内存空间。经上述声明的数组名不能直接使用,必须经过初始化为其分配内存后才能使用。

int intArray[];
int [] intArray;
String stringArray[];
String [] stringArray;

数组的创建

包括数组在内,Java中所有的对象都是在运行时进行动态创建的,创建新对象的方法之一就是用关键字new构成数组的创建表达式。

int [] a=new int[8];

也可以将数组的声明和叉棍见分开来执行;

int[] a;
a=new int[8];

也可以在一条语句中创建多个数组;

String[] s1=new String[3], s2=new String[8], s3=new String[10];

数组元素的初始化

数组声明后必须经过初始化才能引用,也就是数组的元素要被赋以初始值。创建数组时,如果没有指定初始值,数组便被赋予默认初始值。
基本类型数值数据,默认的初始值为0;
boolean类型数据,默认值为false;
引用类型元素的默认值为null。

Type arrayName[]={element1,[element2,...]};

其中,Type为数组元素类型,arrayName为数组名,element1,element2…为type类型的数组元素初值。
用这种方法声明数组时,无需说明数组长度,按顺序举出数组中的全部元素即可,编译器会通过计算列表中初始值的个数来确定数组元素的个数。
示例;

int a[]={22,33,44,55};

创建了一个包含4个元素的数组a,4个元素分别是22,33,44和55。

数组的引用

myArray.length可以获得数组的长度,元素的个数即为数组的长度。
数组元素的下标是从0开始,最大为length-1。
下标超过最大值,会产生数组越界异常。

public class MyArray {
    public static void main(String[] args){
        int myArray[];//声明数组
        myArray=new int[10];//创建数组
        myArray[0]=0;
        myArray[1]=1;
        myArray[2]=2;
        myArray[9]=9;
        System.out.println("index\t\tValue");
        for(int i=0;i<myArray.length;i++)
            System.out.println(i+"\t\t"+myArray[i]);
        System.out.println("values:");
        for(int i:myArray)      //使用增强for循环遍历数组
            System.out.println(i+" ");
        System.out.println("\n");//证明数组元素默认初始化为0
        //myArray[10]=100;//将产生数组越界异常
    }
}
输出结果:
index		Value
0		0
1		1
2		2
3		0
4		0
5		0
6		0
7		0
8		0
9		9
values:
0 
1 
2 
0 
0 
0 
0 
0 
0 
9 
myArray[10]=100;//将产生数组越界异常
//输出:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
	at MyArray.main(MyArray.java:16)

多维数组

多维数组可以看作数组的数组,即高维数组的每一个元素作为一个低维数组。多维数组的声明、初始化和引用与一维数组相似。

二维数组的声明

Type arrayName[][];
Type [][] arrayName;
int intArray[][];
int [][] intArray;

二维数组的创建

arrayName=new Type[length][length];
int a[][];
a=new int[4][5];
int a[][];
a=new int[2][];
a[0]=new int[3];
a[1]=new int[5];

二维数组初始化

int a[][]={{1,2,3},{4,5,6}}
int [][] myArray;
myArray=new int[3][];
int[] x={0,2};
int[] y={1,2,3,4};
myArray[1]=x;
myArray[2]=y;

二维数组的引用

与一维数组一样,二维数组也用数组名和下标值来确定引用的数组元素,语法形式如下;

arrayName[arrayIndex1][arrayIndex2];

数组下标必须是int、short、byte或者char类型中的一种,并且从0开始计数。通过arrayName.length可以得到二维数组的行数,通过arratName[i].length可以得到第i行的列数。

public class MyArray {
    public static void main(String[] args){
        int myArray[][];//声明数组
        myArray=new int[5][10];//创建数组
        int total=0;
        for(int i=0;i<myArray.length;i++)
            for(int j=0;j<myArray[i].length;j++)
                myArray[i][j] = i*10 +j;//为每个数组元素赋值
        for(int i=0;i<myArray.length;i++)
            for(int j=0;j<myArray[i].length;j++)
                total+=myArray[i][j];
        System.out.println("the sum is:"+total);
        total=0;
        for(int [] a:myArray){
            //使用增强for循环遍历二维数组myArray,每次循环时,a都是一个一维数组
            for(int i:a) {
                //使用增强for循环遍历一维数组a,每次循环时,i是一个int型整数
                total += i;
            }
        }
        System.out.println("the sum is:"+total);
    }
}
输出结果:
the sum is:1225
the sum is:1225
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他是只猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值