JAVA开发之 38-JAVA数组知识点(一)

一.一维数组的创建及使用
**一维数组的创建有两种形式:
1)先声明,再用new运算符进行内存分配

数组元素类型  数组名称[]; 
数组元素类型[] 数组名称;

数组元素的类型决定了数组的数据类型,它可以是java中的任意数据类型,包括简单类型和组合类型。数组名字为一个合法的标识符,符号“[ ]”指明该变量是一个数组类型变量。单个“[ ]”表示要创建的数组是一个一维数组。
例如:
声明一个一维数组,实例代码如下:

int arr[];     //声明int型数组,数组中的每个元素都是int型数值;
String str[]; //声明String数组,数组中的每个元素都是String型数值;

声明数组以后,不能马上访问它的任何元素,因为声明数组只是给出了数组名字和元素的数组类型,要想真正使用数组,还要为它分配内存空间。在为数组分配内存空间时必须指明数组的长度。
为数组分配内存空间的语法格式如下:

数组名称 = new 数组元素的类型[数组元素的个数];

数组名称:被连接到数组变量的名称;
数组元素的个数:指定数组中变量的个数,即数组的长度;
例如:
为数组分配内存,实例代码如下:

arr = new int[5]; 

以上代码表示要创建一个有5个元素的整型数组,并且将创建的数组对象赋给引用变量arr,即引用变量arr引用这个数组,如下图所示:
这里写图片描述
数组的下标是从0开始,由于创建的数组arr有5个元素,因此数组中元素的下标为0-4。
说明:
使用new关键字为数组分配内存时:
整型 数组中各个元素的初始值都为0;
浮点型 (float double)的初始值为0.0;
字符型 的初始值为\u0000;
布尔型 的初始值为false;

2)声明的同时为数组分配内存
这种创建数组的方法是将数组的声明和内存的分配合在一起执行。
语法如下:

数组元素的类型  数组名 = new 数组元素的类型[数组元素的个数];

例如:
声明并为数组分配内存,实例代码如下:

 int month[] = new int[12]; 

上面的代码创建了数组month,并指定了长度为12.这种创建数组的方法也是java程序编写过中普遍的用法。

二.初始化一维数组
数组与基本数据类型一样可以进行初始化操作。数组的初始化可分别初始化数组中的每个元素,数组的初始化有以下两种形式:

int arr[] = new int[]{1,2,3,4,5};   //第一种初始化方式
int arr2[] = {23,34,45,56};         //第二种初始化方式

从中可以看出,数组的初始化就是包括在大括号内用逗号分开的表达式列表。用逗号(,)分割数组中的各个元素,系统自动为数组分配一定的空间。用第一种初始化方式,将创建5个数组,分别为1、2、3、4、5.第二种初始化方式,会创建4个元素的数组,分别为23、34、45、56。

1)使用一维数组
在java集合中的一维数组是常见的一种数据结构,下面的实例是使用一级数组将1-12月各月的天数输出。
例如:
在项目中创建类,在主方法中创建int型数组,并实现将各月的天数输出。

public class GetDay{
    public static void main(String[] args){
        //创建并初始化一维数组
        int day[] = new int[]{31,28,31,30,31,30,31,31,30,31,30,31}; 
        for(int i =0; i<12; i++){         //利用循环将信息输出
            System.out.println((i+1)+"月有"+day[i]+"天"); //输出的信息
               }
         }
}

输出结果:
这里写图片描述

三.二维数组的创建与使用
如果一维数组中的各个元素仍然是一个数组,那么它就是一个二维数组。
二维数组常用于表示表,表中的信息以行和列的形式组织,第一个下标代表元素所在的行,第二个下标代表元素所在的列。

小知识:
数组的 length属性:
表示数组的长度,具有以下特点:
1)length的返回值是int型;
2)数组的长度不可以定义成负数;
3)length的值是常量。

1)二维数组的创建
二维数组可以看作是特殊的一维数组,因此,二维数组的创建同样也有两种方式。
(1)先声明,再用new运算符进行内存分配
语法如下:

数组元素的类型 数组名称[] []; 
数组元素的类型[] [] 数组名称;

例如:
声明二维数组,实例代码如下:

 int myarr [] [] ; 

同一维数组一样,二维数组在声明时也没有分配内存空间,同样要使用new 关键字来分配内存然后才可以访问每个元素。
对于高维数组,有两种为数组分配内存的方式:
a)直接为每一维分配内存空间
例如:为每一维数组分配内存,实例代码如下:

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

上述代码创建了二维数组a,二维数组a中包括两个长度为4的一维数组,内存图分配如下:
这里写图片描述
b)分别为每一维分配内存

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

(2)声明的同时为数组分配内存
第二种方式同第一种实现的功能相同。首先指定最左边维数的内存,然后单独地给余下的维数分配内存。通过第二种方式为二维数组分配内存,如下图所示:
这里写图片描述

2)二维数组的初始化
二维数组的初始化与一维数组初始化类似,同样可以使用大括号完成。
语法如下:

type arrayname [] [] = {value1,value2,……valuen}; 

type:数组数据类型;
arrayname:数组名称,一个合法的标识符;
value:数组中各元素的值;
例如:

int myarr[] [] = {{12,0},{45,10}}; 

初始化二维数组后,要明确数组的下标都是从0开始。例如,上面的代码中,myarr[1][1]的值为10。

int型二维数组是以int a [][]来定义的,所以可以直接给a[x][y]赋值。例如,给a[1]的第二个元素赋值的语句如下:

a[1][1]= 20; 

3)使用二维数组
二维数组在实际应用中用得非常广泛。下面的实例就是使用二维数组输出 一个3行4列且所有元素都是0的矩阵。
例如:
在项目中创建类,在主方法中编写代码实现输出一个3行4列的元素都为0的矩阵。

public class Matrix{
    public static void main(String[] args){
        int a[] [] = new int[3][4]; 
        for(int i = 0 ; i<a.length; i ++){
            for(int j = 0; j <a[i].length; j++){
                System.out.print(a[i][j]);  
            }
            System.out.println(); 
        }
    }
}

输出结果:
0000
0000
0000
说明:
对于整型二维数组,创建成功后,系统会赋值给数组中每个元素的初始值为0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值