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中,可以使用以下格式来定义一个数组. 数据类型[ ...
随机推荐
- 【Spark】Spark性能优化之Whole-stage code generation
一.技术背景 Spark1.x版本中执行SQL语句,使用的是一种最经典,最流行的查询求职策略,该策略主要基于 Volcano Iterator Model(火山迭代模型).一个查询会包含多个Opera ...
- 企业网站被黑 dedecms漏洞修复办法
前段时间网站被黑了,从百度打开网站直接被劫持跳转到了彩票,du博网站上去,网站的首页index.html文件也被篡改成一些什么北京sai车,pk10,一些cai票的关键词内容,搞得网站根本无法正常浏览 ...
- 常用数字信号的产生(C实现)-均匀分布&正态分布
小白博主开始学DSP之路,为了激励自己能坚持下去,写一系列博客来记录下来,也欢迎与大家一起讨论.介于我能力所限,这里学习目标定为,学习一个基础知识,写一个C语言程序实现, 最后会形成一个C的函数库,方 ...
- BZOJ3436_小K的农场_KEY
题目传送门 差分约束基础,对于每种关系建不同的边,求是否有负环. code: /************************************************************ ...
- VINS(六)边缘化
通常的边缘化是将联合概率分布分解为边缘概率分布和条件概率分布的过程,这样可以将Sliding Window中较旧的状态边缘化出Sliding Window,同时保留其信息.并且保证了对应H海塞矩阵的稀 ...
- 学习Drupal一个容易被忽视的问题
刚刚修复了一个问题,一个非常小的问题,但我花了2-3小时才查明原因并修复. 总结下来我忽视了一个非常常见的问题或者没有养成一个好的习惯. 问题现象是:论坛发帖,只有editor以上权限的人可以发帖,也 ...
- 用Scanner读文本文件内容
import java.io.File; import java.util.Scanner; class Demo { public static void main(String[] args) t ...
- letsencrypt证书-管理工具certbot
目录 1. 安装certbot 2. certbot 介绍 3. 插件的具体使用 3.1 webroot 3.2 standalone 3.3 DNS plugins 3.4 manual 4. 证书 ...
- Sql Server Profiler使用
在使用Entity Framework的过程当中,有时候需要看Entity Framework自动生成的Sql语句,在客户端可以使用跟踪的方法看到每次查询时的Sql语句,其实通过数据库 ...
- dubbo入门(一)
1.简介 Dubbo由阿里巴巴开源,是一个分布式服务框架,致力于提供高性能和透明化的RPC(远程过程调用)远程服务调用方案,以及SOA服务治理方案.如果没有分布式的需求,Dbubbo是不需要的,其本质 ...