Java数组

什么是Java数组?

1、数组是一种固定类型固定大小的数据集合。所谓固定类型是指:数组在存放数据的时候只能存放同一个类型的数据,而所谓固定大小是指在定义一个数组变量时它的大小是确定的。
2、数组是一种线性的数据结构。所谓线性的数据结构是指在数据元素的非空集合中,存在唯一一个首元素;唯一一个末元素;除首元素外每一个元素只有一个直接前驱,除末元素外每一个元素只有一个直接后继。
3、Java数组是一种引用数据类型(类类型)。在Java中数据分为基本数据类型引用数据类型。基本数据类型:byte、short、char、int、long、float、double、boolean八种。引用数据类型:类、接口、数组三种。

Java数组的属性和方法

既然Java数组是一种类类型,作为类的一种,Java数组必定具有自己的属性和方法。Java数组具有唯一 的属性:length。我们可以对一个数组对象arry通过arry.length的方式得到数组对象arry的长度。

Java数组的使用

1、数组的定义:定义一个一维数组有以下几种格式
数据类型 [] 数组名 =new 数据类型[数组长度];
数据类型[] 数组名 =new 数据类型[]{数组数据……};
数据类型[]数组名 =new 数据类型{数组数据……};
数据类型 [] 数组名;
数组名 = new 数据类型[长度];
数组名 = new 数据类型[]{数据、…};
代码示例:定义一个长度为10的整形数组,数组元素为从0到9。


int []arry=new int[10];//格式一定义一个数组
for(int i=0;i<10;i++){ //利用for循环为数组赋值
    arry[i]=i;
}

int []arry=new int[]{0,1,2,3,4,5,6,7,8,9};//格式二定义一个数组,直接为数组元素赋值

int []arry=new int{0,1,2,3,4,5,6,7,8,9};//格式三定义一个数组,直接为数组元素赋值

int []arry;                             //格式四定义一个数组,直接为数组元素赋值
arry=new int{0,1,2,3,4,5,6,7,8,9};

int []arry;                             //格式五定义一个数组,直接为数组元素赋值
arry=new int[]{0,1,2,3,4,5,6,7,8,9};

但是 有几种格式是错误的如

int []arry;                             
arry={0,1,2,3,4,5,6,7,8,9};

int []arry;                             
arry[]={0,1,2,3,4,5,6,7,8,9};

这是为什么呢?因为数组是一种引用类型也就是一种类类型,我们在示例化一个数组对象的时候必须用 new关键字来为数组对象在堆中开辟一个空间。以上代码出错的地方在于没有使用new关键字开辟对应的空间。

定义一个二维数组有以下几种格式:
数据类型 数组名 [][]=new 数据类型[行数][列数];
数据类型 数组名 [][]=new 数据类型[行数][列数]{{数据元素……}{数据元素……}};
数据类型 数组名 [][]=new 数据类型{{数据元素……}{数据元素……}};
数据类型 [][] 数组名;
数组名 = new 数据类型[行数][列数];
数组名 = new 数据类型[][]{{数据、…},…};
代码示例:定义一个2维的整形数组
arry2[0][0]=0;
arry2[0][1]=1;
arry2[1][0]=1;
arry2[1][1]=2;

int [][]arry2=new int[2][2];  //格式1 定义一个二维数组
for(int i=0;i<2;i++){       //利用双层循环为二维数组赋值
 for(int j=0;j<2;j++){
     arry2[i][j]=i+j;
     }
}

int [][]arry2=new int[2][2]={{0,1}{1,2}};//格式二直接为二维数组赋值

int [][]arry2=new int={{0,1}{1,2}};//格式二直接为二维数组赋值

int []arry2;                       //格式三直接为二维数组赋值
arry2[][]=new int[2][2]{{0,1}{1,2}};

int []arry2;            //格式四直接为二维数组赋值
arry2[][]=new int{{0,1}{1,2}};

2、数组元素的访问
数组元素的访问非常方便 格式为:数组名[下标];
2、1如访问以上arry数组中第i个元素

int K=arry[i-1];    //将arry数组中的第i个元素赋给整形变量K

注意数组元素的下标是从0开始的,也就是说arry数组第一个元素是arry[0]。arry数组第i个元素是arry[i-1]。

2、2同理访问二维数组第i行第j列的元素

int k=arry2[i-1][j-1];

3、数组大小的获得
3、1获取一维数组的大小

int k=arry.length;  //数组的唯一属性是length

3、2获取二维数组的行数
数组名.length

int i=arry2.length;

3、3获取二维数组第i行的列数
数组名[i-1].length

int j=arry2[i-1].length;

3、4获取整个二维数组的大小
把每一行的列数相加

int k=0;
for(int i=0;i<arry2.length;i++){
    k+=arry2.length[i].length;
}

数组的优点和缺点

数组的优点相对于队,栈,树,图等数据结构来说,在于访问和设置元素的值都非常方便,只要知道元素对应的下标值就能非常便捷地访问和设置。
数组的缺点在于在定义数组的时候必须确定数组的大小,当我们不知道数组中到底要存多少个数据时,这就非常麻烦了。比如我们要用数组来存储学生信息,那么这个数组要定义成多大的长度呢?如过定义小了那么学生信息有可能存储不完,定义大了那么会造成内存空间的浪费。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值