Java二维数组

2021年6月20日 7点热度 0条评论 来源: caiyec

二维数组

前言

二维数组就是类似于在一维数组中存放数组,注意数组的长度不能改变。

一、二维数组的建立

定义二维数组时第一个括号内代表有几个一位数组,第二个括号代表一维数组的长度。

 int [][]array=new int[3][];  //前面括号中数字时必须填的 
 int[][]array1={ { 1},{ 2,3},{ 4,5,6}}; //已经赋值的二维数组定义

二、二维数组的遍历

如果把二维数组看成是一个矩阵遍历时一般有两种1.双for循环遍历,外循环代表行数,内循环代表列数
2.调用API 遍历

public static void main(String[] args) { 
        int[][]array={ 
                { 1},
                { 2,3},
                { 4,5,6}
        };
    for(int i=0;i<array.length;i++){ 
        for(int j=0;j<array[i].length;j++){ 
            System.out.print(array[i][j]+" ");
        }
    }

API 调用 打印出来就是二维数组的形式

  System.out.println(Arrays.deepToString(array));

三、二维数组的应用

1.打印菱形

代码如下(示例):

public static void main(String[] args) { 
      //打印菱形 先将菱形分为上下两部分
        for(int i=1;i<=5;i++){ 
            for(int j=5;j>i;j--){ 
                System.out.print(" ");
            }
            for(int k=0;k<2*i-1;k++){ 
                System.out.print("*");
            }
            System.out.println();
        }//下半部分
        for(int i=4;i>=1;i--){ 
            for(int j=4;j>=i;j--){ 
                System.out.print(" ");
            }
            for(int k=0;k<2*i-1;k++){ 
                System.out.print("*");
            }
            System.out.println();
        }
    }

用二维数组打印,只需要找到边界条件即可

 int [][]array=new int[9][9];
        for(int i=0;i<9;i++){ 
            for(int j=0;j<9;j++){ 
                if(i+j>=4&&i-j<=4&&i+j<=12&&j-i<=4){ 
                    System.out.print("*");
                }else { 
                    System.out.print(" ");
                }
            }
            System.out.println();
        }

2.搜索二维矩阵

leetcode 74题
给定有规律矩阵,找到一个快速查找的方法 就可以从左下角入手查询 如果第一列的数字比目标值大,就到上一行,如果目标值比这一行第一列大,则在这一行查找。

代码如下(示例):

 public boolean searchMatrix(int[][] matrix, int target) { 
        //从左下角开始查找
        int row=matrix.length-1;//行数 
        int col=0;
        while(row>=0&&col<matrix[0].length){ 
            int num=matrix[row][col];
            if(num==target){ 
                return true;
            }else if(num>target){ 
                row--;
            }else{ 
                col++;
            }
        }
       return false;
    }
    原文作者:caiyec
    原文地址: https://blog.csdn.net/weixin_51601437/article/details/118025863
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。