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 { ...
随机推荐
- Qt 学习之路:QML 组件
前面我们简单介绍了几种 QML 的基本元素.QML 可以由这些基本元素组合成一个复杂的元素,方便以后我们的重用.这种组合元素就被称为组件.组件就是一种可重用的元素.QML 提供了很多方法来创建组件.不 ...
- xp系统
产品密钥 MRX3F-47B9T-2487J-KWKMF-RPWBY(亲测可用)
- Python建立socket并获取信息
import socket, sys port = 80 host = "www.baidu.com" print "Creating socket..." s ...
- mysql 安装配置详解
作为演示,是不可能完全模拟到生产环境的,因此不可能尽善尽美.由于是在virtualbox里面的centos6.5最小化安装版中安装配置mysql,因此前期的准备工作有很多,那么开始吧.添加一块硬盘,用 ...
- 基于JAVA网络编程的聊天小程序
package com.neusoft.edu.socket; import java.io.BufferedReader; import java.io.IOException; import ja ...
- PHP 解决时差8小时的问题
有时候用php echo date("Y-m-d H:i:s")的时候会发现自己的时间和系统时间有差别 这里问题一般就是因为你自己的时区和配置的时区出现了差别的原因: 解决办法有三 ...
- ^(bitwise exclusive Or).
一个数,进行异或同一个数两次,将得到原来的数,例如: 6 ^ 4 ^ 4 = 6; 0000-0000-0000-0110 ^ 0000-0000-0000-0100 ---------------- ...
- 测试Kettle在增量更新的时候是否支持级联——不支持(基于mysql)
由于LZ很像整理一下如何使用Kettle对一张表进行增量更新的时候, 同时实现对数据库中的其他表也可以实现相关的更新操作. 第一种方法想使用触发器,即在相应的hop之间添加SQL脚本step然后在st ...
- 最简单的基于FFmpeg的移动端例子:IOS 推流器
转至:http://blog.csdn.net/leixiaohua1020/article/details/47072519 ================================== ...
- Xcode4.4中,代码无法高亮、无法自动补全
1.代码无法高亮显示:2.代码不能自动补全,或者给出提示建议:(当然这个补全的功能我在设置当中是打开的状态)3.新建一个项目,代码还是依然没有高亮显示,但是有补全功能:4.然后我就在网络上搜索了相关的 ...