Java 二维数组
在 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 二维数组的更多相关文章
- JAVA二维数组的复制
JAVA二维数组的复制 笔者今天做一道ccf题目时,遇到要将二维数组拷贝复制时,没有用常规的那种一个一个数的复制,用的是System.arraycopy()来进行复制,下面介绍这个函数的一些注意点: ...
- Java 二维数组,排序、切换顺序,查表法二进制十进制,这班查找、排序(冒泡、选择)、遍历,获取最大小值(4)
Java 二维数组,排序.切换顺序,查表法二进制十进制,折半查找.排序(冒泡.选择).遍历,获取最大小值(4)
- 062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用
062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用 本文知识点:二维数组应用 二维数组的声明和创建 ? 出现空指针异常 数组的名字指向数组的第 ...
- JAVA二维数组小记
入手JAVA第二天 //二维数组 //数据类型 [][] 数组名 = new 数据类型[行的个数][列的个数];3 String [][] name = {{"admin",&qu ...
- java二维数组学习(转)
转自:http://blog.csdn.net/java1992/article/details/5808709,在这里谢过了 /* * java学习: * 二维数组的使用: */public cla ...
- java 二维数组的行列长度
在 java 中,其实只有一维数组,而二维数组是在一维数组中嵌套实现的.比如 int[][] a = {{},{},{},{}} 要取行数和某一行的列数可以 : int rowLen = a.leng ...
- 06-01 Java 二维数组格式、二维数组内存图解、二维数组操作
二维数组格式1 /* 二维数组:就是元素为一维数组的一个数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的 ...
- 什么是二维数组?二维遍历?Java二维数组制作图片迷宫 使用如鹏游戏引擎制作窗口界面 附带压缩包下载,解压后双击start.bat启动
什么是二维数组? 数组当中放的还是数组 int [][] arr=new int[3][2]; 有3个小箱子,每个箱子2个格子. 看结果? int [][] arr=new int[3][2]; Sy ...
- Java 二维数组及方法概况
数组 数组是指一组数据的集合,数组中的每个数据被称作元素.在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致. 数组的定义 在Java中,可以使用以下格式来定义一个数组. 数据类型[ ...
随机推荐
- Vue learning experience
一.内置指令[v-ref] Official-document-expression: 父组件在子组件上注册的索引,便于直接访问.不需要表达式,必须提供参数ID,可以通过父组件的$ref对象访问子组件 ...
- chrome调试微信
打开微信,设法打开网址 http://debugx5.qq.com (推荐直接把这个网址发给文件传输助手,然后就可以直接打开链接了) 在打开的网页中选择 [信息]->[TBS settings] ...
- sample采样倾斜key并单独进行join代码
/** * sample采样倾斜key单独进行join */ JavaPairRDD<Long, String> sampledRDD = userid2PartAggrInfoRDD.s ...
- 最新版的stm32f1xx.h文件中取消了u8, u16, u32的类型定义
使用芯片stm32f103zet6和stm32l151c8t6,在移植程序时发现,编译器提示u8未定义: 在Keil MDK 开发环境里,st定义无符号32位整形数据有很多种表示方法: 1 unsig ...
- Manjaro Linux KDE个人的一些安装配置
安装manjaro kde linux的个人步骤 1 换源 1.1 自动寻找最快的源 sudo pacman-mirrors -i -c China -m rank 1.2 修改源文件 sudo ge ...
- 闰年相关的问题v3.0——计算有多少闰年
# include<stdio.h>int main(){ int a,b,i; int sum = 0; printf("Input your birth year:" ...
- .Net 面试题 汇总(五)
1.简述javascript中的“=.==.===”的区别? =赋值 ==比较是否一般相等 "3"==3 //会做类型的隐式转换,true ===比较是否严格相等 "3& ...
- 【blockly教程】第三章Blockly顺序程序设计
3.1 什么是Blockly语言 2012年6月,Google发布了完全可视化的编程语言Google Blockly,整个界面清晰明了, 你可以如同在玩拼图一样用一块块图形对象构建出应用程序.每个图 ...
- Java设计模式(12)——结构型模式之门面模式(Facade)
一.概述 概念 简要示意图(没有一个统一的UML图) 角色 门面角色:门面模式核心,它被客户端调用,并且熟悉子系统 子系统角色:子系统,子系统并不知道门面的存在,门面对它来说只不过是另外一个客户端 ...
- day 4 __all__ 包 __init__.py
1.__all__的作用 如果一个文件中有__all__变量,那么也就意味着这个变量中的元素,不会被from xxx import *时导入 __all__ = ["test1", ...