java中二维数组(多维数组)的理解认识

来源:互联网 发布:淘宝格子铺是什么 编辑:程序博客网 时间:2024/05/12 09:12

       最近在一些练习之中遇到了很多关于二维数组的处理,例如二维数组的排序,找最大最小值之类的,所以现在来对二维数组或者可以说对多维数组,来做一个小小的总结。

       其实无论是面对二维数组还是多维数组时都应该树立一种意识,不管几维数组,其实都可以看做一维数组。拿二维数组来举个例子,更加形象展现一下二维数组与一维数组的关系:

public class exercise3 {public static void main(String[] args) {int array[][] = new int[4][2];System.out.println("二维数组中一共有"+array.length+"个一维数组");System.out.println("每个一维数组的长度为"+array[0].length);    }}


从上面这个例子中不难看出定义一个四行两列的二维数组,实则可以将每一行看作为一个一维数组,而列数则可以看为一维数组的长度,那么就这种情况看来,二维数组的本质也是一个一维数组,只不过和一维数组存储基本类型数据和自定义的类的对象数据不同的是二维数组所存储的数据就是一维数组,总结一句话,二维数组是存储一维数组的一维数组。

        再举一个例子,要找一个二维数组的最大值和最小值,如果你以一个很普通的观念来看待二维数组,那么很有可能你的方法就是利用两个for循环然后不断更新一个变量max或min来得到答案。但是你将二维数组看成是存储一维数组的一维数组的话就可以用一下方法来进行求值:

public class exercise3 {public static void main(String[] args) {int max = 1;int min = 1;int array[][] = {{2,3,1},{6,5,4},{8,7,9}};for(int i=0;i<array.length;i++){Arrays.sort(array[i]);max = Math.max(max,array[i][2]);min = Math.min(min,array[i][0]);}System.out.println("最大值="+max);System.out.println("最小值="+min);    }}


上面的例子等于是先将每个所存储一维数组排序,然后取各个一维数组的最大最小值进行一个比较。

       总之,上面所有总结为一句话那就是将二维数组看为存储一维数组的一维数组,不要将二维数组看为一个整体而是将其分为一个一个的模块来处理会比较简便易懂。

原创粉丝点击