java中创建多维数组

在Java里可以方便地创建多维数组:
 

//: MultiDimArray.java
// Creating multidimensional arrays.
import java.util.*;

public class MultiDimArray {
  static Random rand = new Random();
  static int pRand(int mod) {
    return Math.abs(rand.nextInt()) % mod + 1;
  }
  public static void main(String[] args) {
    int[][] a1 = {
      { 1, 2, 3, },
      { 4, 5, 6, },
    };
    for(int i = 0; i < a1.length; i++)
      for(int j = 0; j < a1[i].length; j++)
        prt("a1[" + i + "][" + j +
            "] = " + a1[i][j]);
    // 3-D array with fixed length:
    int[][][] a2 = new int[2][2][4];
    for(int i = 0; i < a2.length; i++)
      for(int j = 0; j < a2[i].length; j++)
        for(int k = 0; k < a2[i][j].length;
            k++)
          prt("a2[" + i + "][" +
              j + "][" + k +
              "] = " + a2[i][j][k]);
    // 3-D array with varied-length vectors:
    int[][][] a3 = new int[pRand(7)][][];
    for(int i = 0; i < a3.length; i++) {
      a3[i] = new int[pRand(5)][];
      for(int j = 0; j < a3[i].length; j++)
        a3[i][j] = new int[pRand(5)];
    }
    for(int i = 0; i < a3.length; i++)
      for(int j = 0; j < a3[i].length; j++)
        for(int k = 0; k < a3[i][j].length;
            k++)
          prt("a3[" + i + "][" +
              j + "][" + k +
              "] = " + a3[i][j][k]);
    // Array of non-primitive objects:
    Integer[][] a4 = {
      { new Integer(1), new Integer(2)},
      { new Integer(3), new Integer(4)},
      { new Integer(5), new Integer(6)},
    };
    for(int i = 0; i < a4.length; i++)
      for(int j = 0; j < a4[i].length; j++)
        prt("a4[" + i + "][" + j +
            "] = " + a4[i][j]);
    Integer[][] a5;
    a5 = new Integer[3][];
    for(int i = 0; i < a5.length; i++) {
      a5[i] = new Integer[3];
      for(int j = 0; j < a5[i].length; j++)
        a5[i][j] = new Integer(i*j);
    }
    for(int i = 0; i < a5.length; i++)
      for(int j = 0; j < a5[i].length; j++)
        prt("a5[" + i + "][" + j +
            "] = " + a5[i][j]);
  }
  static void prt(String s) {
    System.out.println(s);
  }
} ///:~

用于打印的代码里使用了length,所以它不必依赖固定的数组大小。
第一个例子展示了基本数据类型的一个多维数组。我们可用花括号定出数组内每个矢量的边界:

int[][] a1 = {
{ 1, 2, 3, },
{ 4, 5, 6, },
};

每个方括号对都将我们移至数组的下一级。
第二个例子展示了用new分配的一个三维数组。在这里,整个数组都是立即分配的:
int[][][] a2 = new int[2][2][4];
但第三个例子却向大家揭示出构成矩阵的每个矢量都可以有任意的长度:

 

    int[][][] a3 = new int[pRand(7)][][];
    for(int i = 0; i < a3.length; i++) {
      a3[i] = new int[pRand(5)][];
      for(int j = 0; j < a3[i].length; j++)
        a3[i][j] = new int[pRand(5)];
    }

对于第一个new创建的数组,它的第一个元素的长度是随机的,其他元素的长度则没有定义。for循环内的第二个new则会填写元素,但保持第三个索引的未定状态——直到碰到第三个new。
根据输出结果,大家可以看到:假若没有明确指定初始化值,数组值就会自动初始化成零。
可用类似的表式处理非基本类型对象的数组。这从第四个例子可以看出,它向我们演示了用花括号收集多个new表达式的能力:

 

    Integer[][] a4 = {
      { new Integer(1), new Integer(2)},
      { new Integer(3), new Integer(4)},
      { new Integer(5), new Integer(6)},
    };

第五个例子展示了如何逐渐构建非基本类型的对象数组:

 

    Integer[][] a5;
    a5 = new Integer[3][];
    for(int i = 0; i < a5.length; i++) {
      a5[i] = new Integer[3];
      for(int j = 0; j < a5[i].length; j++)
        a5[i][j] = new Integer(i*j);
    }

i*j只是在Integer里置了一个有趣的值。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数组
, int
, new
, for
, integer
, length
, java 多维数组
动态java数组多维数组
java创建多维数组、js创建多维数组、python 创建多维数组、matlab创建多维数组、php创建多维数组,以便于您获取更多的相关知识。

时间: 2024-09-10 23:48:02

java中创建多维数组的相关文章

Java中的二维数组

Java 中的二维数组 所谓二维数组,可以简单的理解为是一种"特殊"的一维数组,它的每个数组空间中保存的是一个一维数组. 那么如何使用二维数组呢,步骤如下: 1. 声明数组并分配空间 或者 如: 2. 赋值 二维数组的赋值,和一维数组类似,可以通过下标来逐个赋值,注意索引从 0 开始 也可以在声明数组的同时为其赋值 如: 3. 处理数组 二维数组的访问和输出同一维数组一样,只是多了一个下标而已.在循环输出时,需要里面再内嵌一个循环,即使用二重循环来输出二维数组中的每一个元素.如:  

二维数组 引用-Java中的二维数组的引用问题

问题描述 Java中的二维数组的引用问题 代码: public static void main(String args[]){ double[][] a={{1,2,3},{4,5,6},{7,8,9}}; System.out.println(a+" "+a[0]); } 结果: [[D@15db9742 [D@6d06d69c 疑惑:二维数组名a的引用和a[0]的引用有什么不同? 解决方案 您好,a是一个二维数组,a的引用就是整个二维数据对象,a[0]则是二维数组中的第一个对象{

求解java中的 二维数组添加 删除 修改 查询 操作

问题描述 二维数组添加删除修改查询操作如何实现?不用传统数组用List()做一个通讯录用字符串输入的方式编写一个简单的通讯录.此通讯录由多条记录构成.每条记录包括一个联系人的姓名.性别.电话.通信地址,并具有查询.增加.修改.删除等功能,且每执行一次功能操作后,可以选择用类似以下的格式,输出通讯录的所有信息记录: 解决方案 解决方案二:這不是二維數組.用Map來做更合適,先定義一個個人資料的類,然後放到Map時用ID當KEY.解决方案三:我用List做

java-Java中的二维数组创建

问题描述 Java中的二维数组创建 在ava程序中创建二维数组时,在第一个中括号里是写行的数字还是写列的数字?比如5行8列,在下面赋值号的右边靠近int的中括号里是填5还是填8?谢谢高手! int[][] zhuming = new int[][] 解决方案 五行八列就是new int[5][8]的. 解决方案二: 第一个数代表一维数组有几个元素,第二个数代表有几个数组.这么理解很容易想. 解决方案三: 第一个方框表示行数,第二个方框表示列数,因此就是new int[5][8]表示5行8列. 解

java与c#中二维数组的区别

java中使用二维数组 public class Array2D...{ public static void main(String[] args)...{ int myInt[][]=new int[5][10]; //遍历,给数组中的每一个数组赋值 for(int i=0;i<myInt.length;i++)...{ for(int j=0;j<myInt[0].length;j++)...{ myInt[i][j]=i*j; } } System.out.println ("

java matlab 二维数组-java调用matlab中调用二维数组问题

问题描述 java调用matlab中调用二维数组问题 我是用的以下matlab函数 function [Theta, Phi, R] = infofusion(a1, b1, a1, b2, a3, b3): 其中a1,b1,a2,b2,a3,b3都是4*3的二维数组,并且每个数组里面都是常量,都是数,请问各位大神,如何在java调用matlab的基础上实现二维数组的调用,跪求了

java中创建数组时内存怎么分配????

问题描述 java中创建数组时内存怎么分配???? int[] arr=new int[3]; 问题: 上面创建int数组时,怎么分配内存的?arr是一个引用变量,是通过指针指向new int[3](存在堆里面)对吧,那么,栈里面为arr分配几个指针,是3个还是1个? 补充: 疑问1****: 其实我就是想知道java中创建数组时,栈中分配几个指针,是一个还是"数组长度"个? 疑问2****: 如果是一个,那么,这个指正指向谁???? 疑问3****: 如果指向的是第一个元素,那么,该

Python中的二维数组的操作方法

这篇文章主要介绍了一些Python中的二维数组的操作方法,是Python学习当中的基础知识,需要的朋友可以参考下 需要在程序中使用二维数组,网上找到一种这样的用法: ? 1 2 3 4 5 6 #创建一个宽度为3,高度为4的数组 #[[0,0,0], # [0,0,0], # [0,0,0], # [0,0,0]] myList = [[0] * 3] * 4 但是当操作myList[0][1] = 1时,发现整个第二列都被赋值,变成 ? 1 2 3 4 5 6 7 [[0,1,0],   [0

Lua中使用二维数组实例

  这篇文章主要介绍了Lua中使用二维数组实例,本文直接给出代码实例,看代码更容易理解,需要的朋友可以参考下 在Lua中跟JS也是一样,没有二维数组的概念,但是二维数组对我们的开发又是极其的重要,当然,使用很多啦.谈谈在Lua中如何使用二维数组? 原理,一维数组里面给一个嵌套就是二维数组了,好,就那么简单,看看代码更容易理解 最近在做一个项目,如下是部分代码 ? 1 2 3 4 5 6 7 8 for i=1,10 do self.startMartix[i]={} self.star[i]={