精华内容
下载资源
问答
  • 主要介绍了C#和Java中二维数组区别分析,主要讲述了二维数组在C#和Java中定义及应用的区别,非常实用,需要的朋友可以参考下
  • Java中二维数组

    2020-01-05 21:39:10
    维数组: 概念: 二维数组的元素就是一个一维数组,以及一维数组对用的长度 int x ,y ; int[] x , y ;x是一个一维数组,y是一个一维数组 int[] x , y[] ;x是一个一维数组,y是一个二维数组 int[][] x ; x是一个二维数组...

    二维数组:
    概念:
    二维数组的元素就是一个一维数组,以及一维数组对用的长度
    int x ,y ;
    int[] x , y ;x是一个一维数组,y是一个一维数组
    int[] x , y[] ;x是一个一维数组,y是一个二维数组
    int[][] x ; x是一个二维数组
    定义格式1:
    动态初始化:
    数据类型[][] 数组名称 = new 数据类型[m][n] ; (推荐第一种)
    数据类型 数组名称[][] = new 数据类型[m][n] ;
    举例:
    int[][] arr = new int[3][2] ;
    等号左边:
    int:表示一个int类型
    [][]:表示定义二维数组
    arr :数组名称
    等号右边:
    new :在堆内存中创建对象
    int :创建int类型数组
    [3] :表示当前二维数组中有3个一维数组
    [2] :这三个一维数组中每一个都有2个元素

    class Array2Demo{
    	public static void main(String[] args){
    		//定义一个二维数组,并且动态初始化
    		int[][] arr = new int[3][2] ;
    		System.out.println(arr) ;//[[I@十六进制数据		[[I@6d06d69c
    		//存在3个一维数组		系统默认初始化:null
    		//第一个一维数组
    		System.out.println(arr[0]) ; //[I@7852e922
    		System.out.println(arr[1]) ;//[I@4e25154f
    		System.out.println(arr[2]) ;//[I@70dea4e
    		//访问二维数组中第一个一维数组的第一个元素
    		System.out.println(arr[0][0]) ;//0
    		//赋值
    		arr[0][0] = 10 ;
    		arr[0][1] = 20 ;
    		arr[2][1] = 30 ;
    		System.out.println(arr[0][0]) ;//10
    		System.out.println(arr[0][1]) ;//20
    		System.out.println(arr[1][0]) ;//0
    		System.out.println(arr[1][1]) ;//0
    		System.out.println(arr[2][0]) ;//0
    		System.out.println(arr[2][1]) ;//30
    		}
    }   
    

    定义格式2:
    int arr[][]=new int[3][];
    arr[0]=new int[2];
    当前二维数组中有m个一维数组,但是没有给定每一个一维数组的长度,长度可以动态给定!

    class Array2Demo2{
    	public static void main(String[] args){
    		//格式2:定义二维数组
    		int[][] arr = new int[3][] ;
    		System.out.println(arr); //[[I@6d06d69c
    		//访问每一个一维数组的数组名称:arr[0],arr[1],arr[2]
    		System.out.println(arr[0]) ;//null
    		System.out.println(arr[1]) ;//null
    		System.out.println(arr[2]) ;//null
    		//动态给定一维数组中长度
    		arr[0] = new int[2] ;
    		arr[1] = new int[3] ;
    		arr[2] = new int[1] ;
    		System.out.println(arr[0]) ;//[I@7852e922
    		System.out.println(arr[1]) ;//[I@4e25154f
    		System.out.println(arr[2]) ;//[I@70dea4e
    		System.out.println("---------------------") ;
    		arr[0][0] = 10 ;
    		arr[1][1] = 50 ;
    		arr[2][0] = 100 ;
    		System.out.println(arr[0][0]) ;
    		System.out.println(arr[1][1]) ;
    		System.out.println(arr[2][0]) ;
    		//System.out.println(arr[2][1]) ;//java.lang.ArrayIndexOutOfBoundsException :数组角标越界异常
    	}
    }
    

    定义格式3:
    int arr[][]={{1,2,3},{4,5,6}};

    展开全文
  • 本文介绍了关于Java中二维数组的一点见识,除此之外还介绍了Java中二维数组声明的不同方式。

    int[][] a = {} 和 int[][] a = {{}}

    观察代码

    package week04.g20200343040172;
    
    public class Main {    
        public static void main(String[] args) {       
            int[][] a = {};       
            int[][] b = {{}};       
            System.out.println("a.length: " + a.length);       
            try {            
                System.out.println("a[0].length: " + a[0].length);       
            } catch (Exception e) {           
                e.printStackTrace();       
            }       
            System.out.println("Is a equals null?: " + (a == null));        
            System.out.println("b.length: " + b.length);        
            System.out.println("b[0].length: " + b[0].length);        
            System.out.println("Is b equals null?: " + (b == null));   
        }
    }
    

    打印结果

    System.out.println("a[0].length: " + a[0].length) 为第九行,报错!!

    a.length: 0
    Is a equals null?: false
    b.length: 1
    b[0].length: 0
    Is b equals null?: false
    java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at week04.g20200343040172.Main.main(Main.java:9)
    

    a.length和 a[0].length

    对于二维数组

    int[][] a = {};
    int[][] b = {{}};   
    
    • a.length打印的是二维矩阵的行的数量,对于M×N的数组而言,a.length对应的就是M。可以把一行看成一个整体,一个二维数组有多少行,里面就有多少个元素。这么来看的话,其实就可以把二维数组当成一个一维数组。
    • a[0].length打印的是二维矩阵的列的数量,对于M×N的数组而言,a[0].length对应的就是N。

    • 对于 int[ ][ ] a = { }。如果我们把一行看作一个元素的话,现在里面完完全全就是空的。我们想当然认为a[0]表示第一行的元素,但是此时里面根本就没有初始化,索引0对应的是哪块区域,索引1对应的是哪块区域,根本就没有划分出来,于是,用索引0去寻找a[0]这个元素的时候,会发现什么都找不到。因为根本就没有a[0]这个元素。对应于下面的一维数组,同样也是如此。
    int ] c = { };
    System.out.println("c.length: " + c.length); //打印0
    System.out.println(c[0]); // ArrayIndexOutOfBoundsException
    
    int[] d = new int[10];
    System.out.println("d.length: " + d.length); //打印10
    System.out.println(d[0]); //打印0
    
    • 对于int[ ][ ] b = {{ }}。同样的,我们如果把一行看作一个元素的话,里面有一个空的括号,表示该行什么元素都没有,但是与int[ ][ ] a = { }不同的是,虽然b里面第一个元素为空,但是b为第一行的元素也就是b[0]已经分配了一块地址,它告诉程序员:“好了,我已经为第一行的元素腾出来一块空间,你赶紧把元素放进来吧。"虽然此时的b[0]里面没有放任何元素,但是起码b[0]是有名有姓的。所以b[0].length不会出错。
      而int[ ][ ] a = { }却根本就没有为a[0]这个元素开辟空间,连a[0]是谁,对于a这个二维数组而言都不知道。所以用a[0].length会出错。

    二维数组的声明

    声明二维数组时,可以不声明列,但不能不声明行

    如下的几种声明二维数组的格式都是正确的:
    在这里插入图片描述

    二维的List

    类比于上面的二维数组,二维的List就可以这么写:

    List<List<Integer>> list = new ArrayList<>();
    list.get(0).add(1); //为二维list里面的第一个list添加一个元素1
    
    展开全文
  • java中二维数组

    2018-04-08 22:14:16
    //初始化二维数组 int[][] a = new int[2][3];//有两个一维数组,每个一维数组的长度为3 a[1][2] = 5;//可以直接访问一维数组,因为已经分配了空间 //只分配了二维数组 int[][] b = new int[2][];//有两...
        	//初始化二维数组
        	int[][] a = new int[2][3];//有两个一维数组,每个一维数组的长度为3
        	a[1][2] = 5;//可以直接访问一维数组,因为已经分配了空间
        	
        	//只分配了二维数组
        	int[][] b = new int[2][];//有两个一维数组,每个一维数组的长度未分配
        	b[0] = new int[3]; //必须事先分配长度,才可以访问
        	b[0][2] = 5;
        	b[1][2] = 5; // NullPointerException(空指针异常):b[1]数组未分配长度
        	
        	int[][] c = new int[][] {{1, 2, 4},{4, 5},{6, 7, 8, 9}};
    

    展开全文
  • Java中二维数组的动态初始化

    千次阅读 2020-07-11 17:50:27
    java中二维数组的动态初始化: 使用new关键字实例化,不是直接等于{{“hello”, “world”}, {“I”, “am”, “coming”}} 注意:维度 和 初始化不能同时出现。 public class ArrayTest07 { public static void ...

    java中二维数组的动态初始化:

    使用new关键字实例化,并且指定一个维度。

    什么是一个维度,显式维度,或者隐式维度。

    而不是直接等于{{“hello”, “world”}, {“I”, “am”, “coming”}}。


    测试代码:

    public class ArrayTest07 {
    
        public static void main(String[] args) {
            //先看看二维数组作为参数时应该怎么写
            //静态初始化一个二维数组
            String[][] strArray = {
                    {"hello", "world"},
                    {"I", "am", "coming"}
            };
    
            //打印二维数组
            printStringArray(strArray);
            System.out.println("-----------------------------------------");
    
            //错误的写法
            /*printStringArray({
                    {"hello", "world"},
                    {"I", "am", "coming"}
            });*/
    
            //可以这样写:动态初始化
            printStringArray(new String[][]{
                    {"aa", "bb", "cc"},
                    {"ddd", "eee", "fff"}
            });
            System.out.println("-----------------------------------------");
    
            //可以这样写:动态初始化
            printStringArray(new String[3][4]);  //3行4列,全是null
    
            //错误的写法
            /*printStringArray(new String[2][3]{
                    {"aa", "bb", "cc"},
                    {"ddd", "eee", "fff"}
            });*/
            //注意:维度 和 初始化不能同时出现
        }
    
        //静态方法,打印二维数组
        static void printStringArray(String[][] arr) {
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j < arr[i].length; j++) {
                    System.out.print(arr[i][j] + "  ");
                }
                System.out.println();
            }
        }
    }
    

    总结:

    二维数组的动态初始化,使用new关键字,并指定一个维度:

    (1)指定隐式维度,通过系统去计算得出长度:

    String[][] strArr = new String[][] {
    		{"aa", "bb", "cc"},
    		{"ddd", "eee", "fff"}
     })
    

    (2)指定显式维度,自己手动写出的维度:

    String[][] strArr = new String[3][4];  //3行4列
    

    (3)不能即指定显式维度,又指定隐式维度,属于维度重复:
    显示维度 和 隐式维度 不能同时出现。

    strArr = new String[2][3] {  //这里已经指定了显示维度2,3
    		{"aa", "bb", "cc"},
    		{"ddd", "eee", "fff"}  //这里又被系统算出了隐式维度2,3
    });
    

    展开全文
  • java中二维数组的长度

    2020-03-31 23:21:16
    java中二维数组的长度 public class Solution { public boolean Find(int target, int [][] array) { for(int i=0;i<array.length;i++){ //关于array.length:可看成一维数组,该数组的长度即为二维数组的行数。...
  • java中二维数组和稀疏数组互转 在某些应用场景中需要大量的二维数组来进行数据存储,但是二维数组中却有着大量的无用的位置占据着内存空间,稀疏数组就是为了优化二维数组,节省内存空间。 下面就是二维数组转稀疏...
  • 首先Java中二维数组的定义是这样的: int[][] arr = int[3][2]; 这说明定义了一个int类型的二维数组. 该数组中有三个一维数组,每一个一维数组中有两个元素. . . . 还又另一种二维数组的定义 int[][] arr = new int...
  • Java中二维数组内存地址详解及数组元素动态初始化 int[][] arr = new int[3][3]; /* *[[I@10f87f48 * *@:分隔符 * 10f87f48:十六进制内存地址 *I:int 数组中存储的数据类型 * [[: 几个中括号就代表几维...
  • Java中二维数组的定义方式

    千次阅读 2019-04-27 09:10:27
    1. 要注意Java中二维数组的 定义方式与一维数组不同。 一维数组 我们只需要像如下即可: String str = null; 接下来我们就可以直接使用str这个变量了。可是二维数组不同。 String[][] str = null; 二 数组...
  • 主要运用Java中二维数组的第二维数组长度可以任意这一特性 示例代码: public class Example7 { public static void main(String[] args) { //定义二维数组 int[][] num = new int[10][]; //遍历数组 ...
  • Java中二维数组array.length和array[i].length的区别及实例 这两个length其实很容易区分。array.length代表的是二维数组行的长度,也可以看成每个二维数组中 所包含的数组的数量。array[i].length代表的是对应行的...
  • JAVA中二维数组的定义和使用
  • Java中二维数组的用法(不定长二维数组),即每个第二数组长度不一样。 1》代码如下: package com.demo.test; public class Test { public Test() { // TODO Auto-generated constructor stub } public...
  • 测试Java中二维数组初始化的值 public class Note04_ArrayText2 { public static void main(String[] args) { int[][] array = new int[3][3]; System.out.println(array);//地址 System.out.println(array[1...
  • java中二维数组Array

    2021-04-06 16:26:56
    一、java中的二维数组
  • java中二维数组的概念

    2020-11-03 23:20:51
    //二维数组书写格式:一共三个箱子,每个箱子里面有两个东西 int[][] arr=new int[3][2] ; 内存分布情况:二维数组的每个盒子指向一维数组的内存地址。 //填入数据 arr[1][1]=99; //哈希值,必有实体 [[表示二...
  • Java中二维数组的定义及静态初始化

    千次阅读 2020-07-11 17:38:13
    维数组其实是一个特殊的一维数组,特殊在这个一维数组当中的每一个元素是一个一维数组。 那三维数组是什么?三位数组是一个特殊的二维数组,特殊在这个二维数组中的每一个元素是一个一维数组。 二维数组的静态初始...
  • 1.方便获得一个字符串表示的矩阵 2.删除二维数组中的第几行 3.删除二维数组中与所要删除行内容一样的此行 4.获得此二维数组
  • 最近在一些练习之中遇到了很多关于二维数组的处理,例如二维数组的排序,找最大最小值之类的,所以现在来对二维数组或者可以说对多维数组,来做一个小小的总结。  其实无论是面对二维数组还是多维数组时都应该树立...
  • java中二维数组的排序

    千次阅读 2019-03-14 17:26:00
    首先定义一个5X8的二维数组,然后使用随机数填充满。借助Arrays的方法对二维数组进行排序。参考思路:先把二维数组使用System.arraycopy进行数组复制到一个一维数组然后使用sort进行排序最后再复制回到二维数组。...
  • JAVA中二维数组的使用

    2019-09-17 15:56:03
    维数组:数组数组 声明二维数组: 数据类型[][] 数组名称; 初始化二维数组: 1.动态初始化 2.静态初始化 // 动态初始化 // 第一个[]:是由几行组成 表示是由几个一维数组 // 第二个[]:是由列组成 表示每一个一...
  • 我想控制台输出一个二维数组,但数组内的数字长度不一,最大的数字有9位, 按照传统的输出加空格或者\t输出结果就不是很美观 比如这样 ![图片说明]...
  • 定义一个二维数组 [3] 表示:二维数组中有3个一维数组 [4] 表示:每个一维数组的长度是4 方式二: int[][] arr = new int[3][] 不推荐 二维数组中定义三个一维数组,每个一维数组长度没有指定 arr[0] a...
  • java中二维数组的定义

    2019-09-27 17:38:52
    想当于定义了一个3*4的二维数组数组长度为3,二维数组中每个元素又是一个长度为4的数组 2、int arr[][]=new int[3][]; 表示定义了一个二维数组arr,里面包含3个数组,每个数组的元素长度不确定 3、int arr[][]={{1,...
  • 维数组的创建 定义时分配长度 int[][] arr = new int[3][5]; 定义不规则二维数组 int[][] arr = new int[5][]; 定义不规则的2维数组同时赋初始值 int[][] arr = new int[][]{{1,3},{2,6,7},{8},{15,18}};// 二...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,505
精华内容 602
关键字:

java中二维数组

java 订阅