在 Java 中,二维数组与一维数组一样,但是不同于 C 中的二维数组:

  1. 在 Java 中,二维数组可以看成是以数组为元素的数组,例如:

     int a[][] = {{1,2},{3,4,5,6},{7,8,9}};

     易知:a[0] 表示一维数组{1,2};a[1] 表示一维数组{3,4,5,6};a[2] 表示一维数组{7,8,9}.

  2. Java 中多维数组的声明和初始化应该按照从高维到低维(从左到右)的顺序进行,例如:

    int a[][] = new int[3][];

a[0] = new int[2];

     a[1] = new int[4];

  a[2] = new int[3];

int t1[][] = new int[][4]; //非法

3. 二维数组的初始化

    3.1 静态初始化

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

int bb[3][2] =  {{1,2},{2,3},{4,5}}; // 非法

3.2 动态初始化

      int a[][] = new int[3][5];

      int b[][] = new int[3][];

       b[0] = new int[2];

      b[1] = new int[3];

b[2] = new int[5];

   4. Demo分析

Demo_1

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

运行结果:

a[0][0]= 1 a[0][1]= 2
a[1][0]= 3 a[1][1]= 4 a[1][2]= 5 a[1][3]= 6
a[2][0]= 7 a[2][1]= 8 a[2][2]= 9

Demo_2

public class Test{
public static void main(String[] args){
String s[][] = new String[3][];
s[0] = new String[2];
s[1] = new String[3];
s[2] = new String[2];
for(int i=0;i<s.length;i++){
for(int j=0;j<s[i].length;j++){
s[i][j] = new String("我的位置是:"+"["+i+"]"+"["+j+"]");
}
}
for(int i=0;i<s.length;i++){
for(int j=0;j<s[i].length;j++){
System.out.print(s[i][j]+" ");
}
System.out.println();
}
}
}

 运行结果:

我的位置是:[0][0] 我的位置是:[0][1]
我的位置是:[1][0] 我的位置是:[1][1] 我的位置是:[1][2]
我的位置是:[2][0] 我的位置是:[2][1]

  5. 数组的拷贝:使用 Java.lang.System.arraycopy 的静态方法可以进行数组的拷贝工作,且不会创建新的对象;

调用格式如下:

System.arraycopy(src, srcPos, dest, destPos, length)

如果源数据数目超过目标数组边界会抛出 IndexOutOfBoundsException 异常

class Test {
public static void main(String[] args){
String s[] = {"SongBo","YanJiXiong","WangHaoWei","ShangXiaoHui"};
String sbak[] = new String[6];
System.arraycopy(s, 0, sbak, 0, 4);
for(int i=0;i<sbak.length;i++){
System.out.println(sbak[i]+" ");
}
}
}

运行结果:

SongBo
YanJiXiong
WangHaoWei
ShangXiaoHui
null
null

Java 二维数组的更多相关文章

  1. JAVA二维数组的复制

    JAVA二维数组的复制 笔者今天做一道ccf题目时,遇到要将二维数组拷贝复制时,没有用常规的那种一个一个数的复制,用的是System.arraycopy()来进行复制,下面介绍这个函数的一些注意点: ...

  2. Java 二维数组,排序、切换顺序,查表法二进制十进制,这班查找、排序(冒泡、选择)、遍历,获取最大小值(4)

    Java 二维数组,排序.切换顺序,查表法二进制十进制,折半查找.排序(冒泡.选择).遍历,获取最大小值(4)

  3. 062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用

    062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用 本文知识点:二维数组应用 二维数组的声明和创建 ? 出现空指针异常 数组的名字指向数组的第 ...

  4. JAVA二维数组小记

    入手JAVA第二天 //二维数组 //数据类型 [][] 数组名 = new 数据类型[行的个数][列的个数];3 String [][] name = {{"admin",&qu ...

  5. java二维数组学习(转)

    转自:http://blog.csdn.net/java1992/article/details/5808709,在这里谢过了 /* * java学习: * 二维数组的使用: */public cla ...

  6. java 二维数组的行列长度

    在 java 中,其实只有一维数组,而二维数组是在一维数组中嵌套实现的.比如 int[][] a = {{},{},{},{}} 要取行数和某一行的列数可以 : int rowLen = a.leng ...

  7. 06-01 Java 二维数组格式、二维数组内存图解、二维数组操作

    二维数组格式1 /* 二维数组:就是元素为一维数组的一个数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的 ...

  8. 什么是二维数组?二维遍历?Java二维数组制作图片迷宫 使用如鹏游戏引擎制作窗口界面 附带压缩包下载,解压后双击start.bat启动

    什么是二维数组? 数组当中放的还是数组 int [][] arr=new int[3][2]; 有3个小箱子,每个箱子2个格子. 看结果? int [][] arr=new int[3][2]; Sy ...

  9. Java 二维数组及方法概况

    数组 数组是指一组数据的集合,数组中的每个数据被称作元素.在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致. 数组的定义 在Java中,可以使用以下格式来定义一个数组. 数据类型[ ...

随机推荐

  1. windows10下“sqlplus / as sysdba”执行提示无权限解决办法

    ORA_DBA:是ORACLE 的特有用户,是超级管理员权限,建成DBA 它具有管理数据库的最高权限. 注明:需要以管理员身份运行cmd,不然第4步会失败(点开始,输入cmd,右键以管理员身份运行) ...

  2. MapReduce之Reduce Join

    一 介绍 Reduce Join其主要思想如下: 在map阶段,map函数同时读取两个文件File1和File2,为了区分两种来源的key/value数据对,对每条数据打一个标签(tag), 比如:t ...

  3. Java使用zxing生成解读QRcode二维码

    1.maven的pom配置jar包,如果不实用maven请手动下载jar包 <dependency> <groupId>com.google.zxing</groupId ...

  4. python三大器之while,if,for循环

    一.for循环(遍历循环) 在Python你可能要经常遍历列表的所有元素,对每个元素执行相同的操作;对于包含数字的列表,可能要对每个元素进行相同的计算;在网站中,可能需要显示文章中的每个标题等等.某一 ...

  5. [Oracle]关于Oracle分页写法的性能分析及ROWNUM说明

    关于分页写法的性能分析及ROWNUM的补充说明 分页写法 一.测试前数据准备 SQL> SELECT COUNT(*) FROM BPM_PROCVAR; COUNT(*) ---------- ...

  6. APP支付 + 退款(JAVA实现)

    首先,你得先有微信开发平台账号密码还需要开通应用,然后还有微信服务商平台商户版账号(这些我都是给产品经理拿的) 其次我认为你先去看一看微信开发平台的文档!  https://pay.weixin.qq ...

  7. c/c++链表的实现

    #include<iostream> #include<string> #define SIZE 3 using std::cout; using std::endl; usi ...

  8. Java连接redis集群操作存储、删除以及获取值

    pom文件添加: <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> &l ...

  9. P/Invoke 光标的操作

    获取与设置光标在屏幕上的位置 GetCursorPos 获取光标在屏幕上的位置,光标位置始终是在屏幕坐标纵指定的,并且不受包含光标的窗口映射模式的影响 函数原型: BOOL GetCursorPos( ...

  10. Qt-QML-C++交互实现文件IO系统-后继-具体文件IO的实现

    在上一篇文章中,我大致将这个QML中的文件IO类搭出了大致的框架,那么,今天抽时间写了一点文件的读写,这里我使用的文件流来读写文件. 文件结构如图 在QML中调用这个类了,就见简单的读取了一个JSON ...