JAVA语言数组以及多维数组实例讲解
小标 2018-12-19 来源 : 阅读 816 评论 0

摘要:本文主要向大家介绍了JAVA语言数组以及多维数组实例讲解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言数组以及多维数组实例讲解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。


数组


一.通常情况下提到的数组多为一维数组,以下代码即为它的定义方式与遍历方式:


public void test1(){


        String[] str=new String[4];


        str[0]="cat";


        str[1]="dog";


        str[2]="pig";


        str[3]="bird";


        for (int i = 0; i < str.length; i++) {


            System.out.println(str[i]);


        }


    }


二.而多维数组先对来说较为复杂,先来几个例子:


1.二维数组:


public void test2(){


        String[][] str=new String[2][3];


        str[0][1]="1";


        str[0][2]="2";


        str[0][3]="3";


        str[1][1]="4";


        str[1][2]="5";


        str[1][3]="6";


        for (int i = 0; i < str.length; i++) {


            for (int j = 0; j < str[i].length; j++) {


                System.out.println(str[i][j]);


            }


        }


    }


2.三维数组:


public void test3(){


        String[][][] str=new String[3][4][2];


        str[0][0][0]="1";


        str[0][0][1]="2";


        str[0][1][0]="3";


        str[0][1][1]="4";


        str[0][2][0]="5";


        str[0][2][1]="6";


        str[0][3][0]="7";


        str[0][3][1]="8";


        str[1][0][0]="9";


        str[1][0][1]="10";


        str[1][1][0]="11";


        str[1][1][1]="12";


        str[1][2][0]="13";


        str[1][2][1]="14";


        str[1][3][0]="15";


        str[1][3][1]="16";


        str[2][0][0]="17";


        str[2][0][1]="18";


        str[2][1][0]="19";


        str[2][1][1]="20";


        str[2][2][0]="21";


        str[2][2][1]="22";


        str[2][3][0]="23";


        str[2][3][1]="24";


        for (int i = 0; i < str.length; i++) {


            for (int j = 0; j < str[i].length; j++) {


                for (int j2 = 0; j2 < str[i][j].length; j2++) {


                    System.out.println(str[i][j][j2]);


                }


            }


        }


    }


结论:


从中不难发现多维数组的规律.


1.首先是数量的规律:一维数组的数量是自身,二维数组是第一维乘以第二维,三维数组是三维相乘,由此可知n维便是n维上各自的数字相乘;


2.其次便是具体的定义:由于具体解释起来比较复杂,便通过实例来解释;首先根据第一个提出的数量规律把数组的数量确定,同时写好其对应的框架,比如:


    四维数组:String[][][][] str=new String[2][2][2][2];


    这里可以得出数组的数量为(2*2*2*2=)16;


    其框架便为:str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";str[][][][]="";


    框架搭好后便可以为具体的维的下标填值,首先是第一维;由于第一维的数量是2,因此便可以在总数的基础上均分,0和1各占8位:str[0][][][]="";str[0][][][]="";str[0][][][]="";str[0][][][]="";str[0][][][]="";str[0][][][]="";str[0][][][]="";str[0][][][]="";str[1][][][]="";str[1][][][]="";str[1][][][]="";str[1][][][]="";str[1][][][]="";str[1][][][]="";str[1][][][]="";str[1][][][]="";


   然后是第二维;而它便是在第一维的基础上进行均分,0和1对一维的0的占位数进行均分,又再对一维的1的占位数进行均分:str[0][0][][]="";str[0][0][][]="";str[0][0][][]="";str[0][0][][]="";str[0][1][][]="";str[0][1][][]="";str[0][1][][]="";str[0][1][][]="";str[1][0][][]="";str[1][0][][]="";str[1][0][][]="";str[1][0][][]="";str[1][1][][]="";str[1][1][][]="";str[1][1][][]="";str[1][1][][]="";


    再然后第三维的0和1就是在第二维的基础上继续均分,先均分二维第一个0和第一个1,然后是第二个0和第二个1,以此类推:str[0][0][0][]="";str[0][0][0][]="";str[0][0][1][]="";str[0][0][1][]="";str[0][1][0][]="";str[0][1][0][]="";str[0][1][1][]="";str[0][1][1][]="";str[1][0][0][]="";str[1][0][0][]="";str[1][0][1][]="";str[1][0][1][]="";str[1][1][0][]="";str[1][1][0][]="";str[1][1][1][]="";str[1][1][1][]="";


    剩下的第四维便以此类推即可:str[0][0][0][0]="";str[0][0][0][1]="";str[0][0][1][0]="";str[0][0][1][1]="";str[0][1][0][0]="";str[0][1][0][1]="";str[0][1][1][0]="";str[0][1][1][1]="";str[1][0][0][0]="";str[1][0][0][1]="";str[1][0][1][0]="";str[1][0][1][1]="";str[1][1][0][0]="";str[1][1][0][1]="";str[1][1][1][0]="";str[1][1][1][1]="";


    同理,如果第n维的数字是m就在n-1维的基础上进行同理的均分m次即可(第1维是在数组总数的基础上进行均分)。


然后遍历的方式比较简单,多少维就套多少个for循环即可,至于for循环循环的次数则是对应维的上一维的长度


,具体写法根据以上示例应该可以理解;


写的方法大概就是这样,至于具体的理解就要靠自己体会了;其实我一直觉得几个示列就可以看懂的,但由于同学的原因强行乱解释了一波。


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved