数组

一. 一维数组

一维数组思维导图:

一维数组实质上是一组相同类型数据的集合,当需要在程序中处理一组数据或者传播一组数据时,可以硬功这种类型的数组。

1.创建一维数组

数组作为对象允许使用new关键字进行内存分配。在使用数组前,必须首先定义数组变量所属的类型,即声明数组。声明一维数组有两种形式:

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

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

数组元素类型:决定了数组的数据类型,它可以是Java中任意的数据类型,包括基本数据类型和非基本数据类型。

数组名字:为一个合法的标识符。

符号"[]":指明该变量是一个数组类型变量,单个"[]"表示要创建的数组是一堆数组。

声明数组后,还不能访问它的任何元素,因为声明数组仅仅是给出了数组名字和元素的数据类型,要想真正使用数组还要为其分配内存空间,且分配内存空间时必须指明数组的长度。

数组名字=new 数组元素类型{数组元素的个数};

数组名字:已经声明的数组变量的名称。

new: 对数组分配空间的关键字。

数组元素的个数:指定数组中变量的个数。即数组的长度。

说明:使用new关键字为数组分配内存时,数组中各个元素的初始化值都为0.

创建数组和分配内存不一定要分开执行,可以在创建数组时直接为变量赋值:

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

注意:无论用何种方法声明数组,前面的中括号中都不可以填写内容,柔则将会在编译时出现错误。

2.初始化一维数组

数组的初始化可分别初始化数组中每个元素。数组的初始化有两种形式。

int arr[] =new int[]{1,2,3,5,25};   //第一种初始化方式

int arr2[]={34,23,12,6};              //第二种初始化方式

数组的初始化方式是:把数据类型包括在大括号之内,中间用逗号分开数组元素的值,系统自动为数组分配一定的空间。第一种初始化方式,创建5个元素的数组,其值依次为1、2、3、5、25;第二种初始化方式,创建4个元素的数组,其值依次为34、23、12、6.

初始化数组是可以省略new运算符和数组的长度,编译器将根据初始值的数量来自动计算数组的长度,并创建数组。

3.一维数组遍历

for循环

//数组的遍历
        
        
        for(int n=0;n<a.length;n++)
        {
            System.out.println(a[n]);
        }
        
        System.out.println("Foreach循环");

foreach循环

//foreach循环
        for(int t :a)
        {
            System.out.println(t);
        }

二. 二维数组

二维数组思维导图

如果一位数组中的各个元素仍是一维数组,那么他就是一个二维数组。二维数组常用语表示表,表中的信息以行和列的形式组织,第一个下标代表元素所在的行,第二个下标代表元素所在的列。

1.二维数组的创建

声明二维数组的方法有两种:

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

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

数组元素类型:决定了数组的数据类型,它可以是Java中任意的数据类型,包括基本数据类型和非基本数据类型。

数组名字: 为一个合法的标识符。

符号“[]”:指明该变量是一个数组类型变量,两个“[]”表示要创建的数组是二维数组。

例题 创建二维数组。

int myarr[][];

与一维数组一样,如果二维数组在声明时没有分配内存空间,同样也要使用关键字new来分配内存,,然后才可以访问每个元素。

二维数组可以看成是由多个一维数组所组成,在给二维数组分配内存时,可以为这些一维数组同时分配相同的内存。第一个括号中的数字是一维数组的个数,第二个括号中的数字是这些一维数组的长度。

例题:为二维数组每一维分配相同内存。

a=new int[2][4];

为二维数组分配内存,分配后二维数组a拥有两个长度是4的一维数组。

给二维数组分配内存时,还可以对其每一个一维数组单独分配内存,且分配的内存可以并不相同,在第一个中括号中定义一维数组的个数,然后就利用一维数组分配被熏得方法分配内存。

 2.二维数组初始化

二维数组的初始化与一维数组初始化类似,同样可以使用大括号完成二维数组的初始化。

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

type:数组数据类型。

arrayname:数组名称,一个合法的标识符。

value:数组中各元素的值。

例题:初始化二维数组

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

初始化二维数组后,要明确数组的下标都是从0开始,int型二维数组是以int  a[][]来定义的,所以可以直接给a[x][y]赋值。如给a[1]的第二个元素赋值,a[1][1]=20;

3.二维数组遍历

for循环嵌套

需要使用双层for循环,还要通过数组的length属性活的数组的长度。

//遍历
        //for
        for(int m=0;m<2;m++)
        {
            for(int n=0;n<3;n++)
            {
                System.out.print(e[m][n]+" ");
            }
            System.out.println();
        }

foreach循环嵌套

//foreach
        for(int[] t:e)
        {
            for(int y:t)
            {
                System.out.print(y+" ");
            }
            System.out.println();
        }
        
        
        
        int[][]k=new int[][]{{1,2,3,4},{5,6,7},{8,9},{0}};

        for(int[] t:k)
        {
            for(int y:t)
            {
                System.out.print(y+" ");
            }
            System.out.println();
        }
原文地址:https://www.cnblogs.com/cycanfly/p/5223108.html