java学习之二维数组
java当中的二维数组,存储一组比较特殊的对象。他存储一个数组,同时存储的数组当中又存储着元素。
java二维数组的声明方式一:
class Arr2Demo
{ public static void main(String[] args)
{
/**
*二维数组的定义格式:元素类型[][] 数组变量名称 = new 元素类型[3][];第一个维度必须
*确定,也就是第一个方括号
*/
int[][] arr = new int[3][];
} }
二维数组出现的意义,二维数组之所以会出现是因为,现在当数据一多的时候我们往往希望把他们存储起来,比如说:
现在有甲乙两个成员,他们当中分别各有一组数字:
甲:34,56,78,22
乙:31,53,79,20
假如我们现在要把这两者存储起来,我们要做的就是把这两者存储在一个数组当中,那么即:
int[] arr = {34,56,78,22,31,53,79,20};
如果我们这个样子存储的话,势必不利于各个数据归属的区分,那么这个时候我们就引入二维数组。
数字多了,引入数组,数组多了就引入二维数组
int[][] arr2 = new int[2][4];
int[][] arr2 = new int[2][4];
arr2[0][0] = 34 ;
arr2[0][1] = 56 ;
arr2[0][2] = 78 ;
arr2[0][3] = 22 ;
arr2[1][0] = 31 ;
arr2[1][1] = 53 ;
arr2[1][2] = 79 ;
arr2[1][3] = 20 ;
那么二维数组在内存当中是如何存储的呢?

二维数组定义的另外一种方式:
同一维数组一样,二维数组也有一种简便的定义方式:即
int[][] arr2 = {{34, 56, 78, 22}, {31, 35, 79, 20}} ;
这个就是二维数组简单的定义格式,一个大数组当中又包括两个小的数组。
二维数组的长度:
class Arr2Demo
{ public static void main(String[] args)
{ int[][] arr2 = {{34, 56, 78, 22}, {31, 35, 79, 20}} ;
System.out.println(arr2.length);//2
System.out.println(arr2[0].length);//4
System.out.println(arr2[0].length);//4 } }
二维数组中数据的遍历输出:因为取出数据之后,还要取出数据当中的元素,这个就是大圈套小圈的思想,使用两个for循环:
class Arr2Demo
{ public static void main(String[] args)
{ int[][] arr2 = {{34, 56, 78, 22}, {31, 35, 79, 20}} ; for (int i = 0; i<arr2.length ; i++ ) { System.out.println("arr["+i+"] :");
for (int n = 0; n<arr2[i].length ; n++ ) { System.out.println("\t"+arr2[i][n]); } } } }
但是如果我们这个样子:
class Arr2Demo
{ public static void main(String[] args)
{ int[][] arr2 = new int[3][] ; for (int i = 0; i<arr2.length ; i++ ) { System.out.println("arr["+i+"] :");
for (int n = 0; n<arr2[i].length ; n++ ) { System.out.println("\t"+arr2[i][n]); } } } }
编译的时候不报错,但是运行的时候会报:
Exception in thread "main" java.lang.NullPointerException
at Arr2Demo.main(Arr2Demo.java:12)
因为此时arr[0]的值是null,是个空指针不指向任何元素,所以通过他引用其他的元素,就会报错。
java学习之二维数组的更多相关文章
- Java学习之二维数组定义与内存分配详解
二维数组:就是元素为一维数组的一个数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的元素有多少个. 注意: ...
- Java 学习笔记 二维数组和对象数组
定义二维数组 int[][] a = new int[4][5]; 可以不指定列数 int[][] a = new int[4][]; 获取行 int i = a.length(); 如果使用第一个例 ...
- Java中的二维数组
Java 中的二维数组 所谓二维数组,可以简单的理解为是一种"特殊"的一维数组,它的每个数组空间中保存的是一个一维数组. 那么如何使用二维数组呢,步骤如下: 1. 声明数组并分配空 ...
- JAVA生成一个二维数组,使中间元素不与相邻的9个元素相等,并限制每一个元素的个数
JAVA生成一个二维数组,使中间元素不与相邻的9个元素相等,并限制每一个元素的个数 示例如下 至少需要九个元素:"A","B","C",&q ...
- Java基础教程——二维数组
二维数组 Java里的二维数组其实是数组的数组,即每个数组元素都是一个数组. 每个数组的长度不要求一致,但最好一致. // 同样有两种风格的定义方法 int[][] _arr21_推荐 = { { 1 ...
- Java一维与二维数组的拷贝与排序
Java一维与二维数组的拷贝与排序 目录 Java一维与二维数组的拷贝与排序 Arrays.sort() 一维数组升序排序 二维数组按行升序排序 二维数组按列升序排序 Java中的数组 Java中数组 ...
- Java基础学习之“二维数组”
一.鄙人对二维数组的理解 二维数组就是由多个数组并列而成 二.举例 1.普通数组(一维数组)的图像格式 2.二维数组的图像格式 代码 1 @Test 2 public void xueXi(){ 3 ...
- Java如何设定二维数组的上限?
在Java中,如何设定二维数组的上限? 以下示例中,使用arrayname.length来确定二维数组的上限(元素数目). package com.yiibai; public class Dimen ...
- 【转】java中定义二维数组的几种写法
原文链接 注:以下的 type[][] var 也可以这样申明 type var[][] type为数组的类型,var为变量名 写法一:行列固定的数组 //定义二维数组写法1 class Test { ...
随机推荐
- iOS-UITouch,UIEvent使用介绍
UITouch 当用户用一根手指触摸屏幕时,会创建一个与手指相关联的UITouch对象 一根手指对应一个UITouch对象 UITouch的作用 保存着跟手指相关的信息,比如触摸的位置.时间.阶段 当 ...
- URAL 1988 - Planet Ocean Landing【几何&三分答案】
[题意] 在一个星球(是一个球体)表面有一个飞机(坐标(x1,y1,z1),原点是星球中心),在空中有一个空间站(坐标(x2,y2,z2)),所有值均小于100,现在要使飞机与空间站相遇,飞机的速度是 ...
- 关于禁止ViewPager预加载问题【转】
转自:http://blog.csdn.net/qq_21898059/article/details/51453938#comments 我最近上班又遇到一个小难题了,就是如题所述:ViewPage ...
- 10.11 noip模拟试题
4题均为128M,1s 1. 锻炼计划(exercise.pas) 身体是革命的本钱,OIers不要因为紧张的学习和整天在电脑前而忽视了健康问题.小x设计了自己的锻炼计划,但他不知道这个计划是否可行, ...
- U3D 内置对象
在U3D里面提供了一个Time对象: void OnGUI(){ Debug.Log("########################"); GUILayout.Label (& ...
- js实现图片自动切换效果。
js实现图片自动切换效果,简单实用,原谅我只是一只小菜鸟还在学大神天天写博文装逼. <script language="javascript"> setInterval ...
- 在DataTable中更新、删除数据
/*在DataTable中选择记录*/ /* 向DataTable中插入记录如上,更新和删除如下: * ----但是在更新和删除前,首先要找出要更新和删除 ...
- [O] SQLite数据库报错:no such column
在SQLite数据库创建语句增加列,运行后报错:no such column 在语法规范的前提下,即 //SQLite数据库创建,逗号与空格须严格 String CREATE_NOTE = " ...
- [原创] SQLite数据库使用清单(上)
1. 介绍 1.1 安装 访问 SQLite 下载页面,从 Windows 区下载预编译的二进制文件. 您需要下载 sqlite-shell-win32-*.zip 和 sqlite-dll-win3 ...
- shell脚本学习之if..else用法
一 简介 1 字符串判断 str1 = str2 当两个串有相同内容.长度时为真 str1 != str2 当串str1和str2不等时为真 -n str1 当串的长度大于0时为真(串非空) - ...