多维(Multi-dimensional)数组维数由索引个数决定。
常用的数组:一维(one-dimensional)数组、二维(two-dimensional)数组

16.2    创建二维数组
索引从0开始,创建成表格,第一个索引是行索引,第二个索引是列索引。
length属性:第一个索引的长度。

16.3    初始化二维数组:数值用逗号分隔,行用大括号分隔。

16.4    不规则数组(ragged array):可变列数的二维数组。
如果只声明但不初始化不规则二维数组,必须声明行数(第一索引),可以不声明列数(第二索引)。
问:不规则数组只能是二维吗?
答:不规则数组可以是多维,并且都是必须声明第一索引就可以了。

自测题:
1. 考虑下列数组声明语句,该数组用于存储学生成绩的集合

char [][] grades=new char[4][20];

a)    该数组有几个维度?
2个

b)    grades.length的值是多少?
4

c)    grades[0].length的值是多少?
20

d)    第一组第一个学生的成绩为B

grades[0][0]='B';

2.    声明合适的数组
a)    进球数:20个球队,38场比赛

int scores[20][38];

b)    座位:70行座位,每行20个座位
boolean seats[70][20];

3.    记录火车晚点情况
a)    一年中第几周,每周中第几天晚点次数

int late[52][7];

b)

int daysNum=0;
for (int i=0;i<52;i++)
for (int j=0;j<7;j++)
if (late[i][j]==2)
daysNum++;

4.
a)    规则二维数组与不规则二维数组的区别:P390
列数(第二索引)是固定的还是可变的。

b)    不规则二维数组triangle

int [][] triangle = new int[4][];
for (int i=0;i<4;i++)
triangle[i]=new int[i+1];

c)    triangle中的最大值

int biggestNum;
biggestNum=triangle[0][0];
for (int i=1;i<4;i++)
for (int j=0;j<triangle[i].length;j++)
if (biggestNum < triangle[i][j])
biggestNum=triangle[i][j];

5.    网格布局策略:P397
允许为将要添加的元素设定行数和列数。排列方式由系统设定,默认为从左到右,从上到下。

编程练习:代码附件
1.    VarNoughtsAndCrosses.java        RunVarNoughtsAndCrosses.java
2.    CheckTrain.java        CheckTrainTest.java    InvalidDateException.java
3.    TimeTable.java        TimeTableException.java    TimeTableTest.java   
    TimeTableGUI.java    RunTimeTableGUI.java        做界面太消耗时间了,暂时不做了。

《Java大学教程》—第16章 二维数组的更多相关文章

  1. 【Java】 剑指offer(3) 二维数组中的查找

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上 ...

  2. 【C语言入门教程】4.2 二维数组

    C 语言允许使用多维数组,即使用多组小标的数组,二维数组是最常用的多维数组.多维数组在内存中存放数据的顺序与一维数组相同,使用连续的存储单元. 4.2.1 二维数组的一般形式 二维数组的一般声明形式为 ...

  3. 《java入门第一季》之二维数组

    /* 格式2: 数据类型[][] 数组名 = new 数据类型[m][]; m:表示这个二维数组有多少个一维数组. 列数没有给出,可以动态的给.这一次是一个变化的列数. */ class Array2 ...

  4. Java编程基础阶段笔记 day06 二维数组

    二维数组 笔记Notes 二维数组 二维数组声明 二维数组静态初始化与二位初始化 二维数组元素赋值与获取 二维数组遍历 二维数组内存解析 打印杨辉三角 Arrays工具类 数组中常见的异常 二维数组 ...

  5. 《Java基础知识》一维,二维数组的申明和使用

    为什么要使用数组: 因为不使用数组计算多个变量的时候太繁琐,不利于数据的处理. --------   数组也是一个变量,是存储一组相同类型的变量 声明一个变量就是在内存中划出一块合适的空间 声明一个数 ...

  6. Java基础系列(39)- 二维数组

    多维数组 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组. 二维数组 int a[][]=new int[2][5]; 解析:以上二维数组a可以看成一个 ...

  7. Java菜鸟学习笔记--数组篇(三):二维数组

    定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...

  8. java基础编程——二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  9. LeetCode二维数组中的查找

    LeetCode 二维数组中的查找 题目描述 在一个 n*m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增.请完成一个搞笑的函数,输入这样的一个二维数组和一个整数,判断数 ...

随机推荐

  1. Python爬虫之多线程下载豆瓣Top250电影图片

    爬虫项目介绍   本次爬虫项目将爬取豆瓣Top250电影的图片,其网址为:https://movie.douban.com/top250, 具体页面如下图所示:   本次爬虫项目将分别不使用多线程和使 ...

  2. C#操作DataReader类

    一.常用属性 名称 说明 Depth 获取一个值,用于指示当前行的嵌套深度 FieldCount 获取当前行中的列数 HasRows 获取一个值,该值指示 SqlDataReader 是否有行 IsC ...

  3. windows 下 nginx 配置文件路径

    nginx在windowns下路径 http{ #虚拟主机1 server{ listen 80; #监听端口,基于IP配置的时候变更此处,比如192.168.1.100:8080; server_n ...

  4. [PHP]算法-旋转数组的最小值的PHP实现

    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组 ...

  5. 1.Linux电源管理-休眠与唤醒

    1.休眠方式 在内核中,休眠方式有很多种,可以通过下面命令查看 # cat /sys/power/state //来得到内核支持哪几种休眠方式. 常用的休眠方式有freeze,standby, mem ...

  6. mybatis_02简单操作数据库

    模糊查询用户信息 <!-- [${}]:表示拼接SQL字符串 [${value}]:表示要拼接的是简单类型参数. 注意: 1.如果参数为简单类型时,${}里面的参数名称必须为value 2.${ ...

  7. Netty实战九之单元测试

    ChannelHandler是Netty应用程序的关键元素,所以彻底地测试他们应该是你的开发过程的一个标准部分.最佳实践要求你的测试不仅要能够证明你的实现是正确的,而且还要能够很容易地隔离那些因修改代 ...

  8. Python mysql 创建连接

    安装 pymysql 模块 pip3 install pymysql # python2, 默认无 pip 命令 # python3, 默认自带 pip3 命令 mysql基本操作 # 导入 pymy ...

  9. PHP7.27: Cookie and Session

    <?php // 有的浏览器不支持Cookie,这要考虑的 $cFile="count.txt"; $acctime=time(); if(file_exists($cFil ...

  10. vuejs2.0实现分页组件,使用$emit进行事件监听数据传递

    上一篇文章介绍了vuejs实现的简单分页,如果我有几个页面都需要有分页效果,不可能每个页面都去复制一下这段代码吧,意思是封装一下,变成通用的组件. 首先使用基础 Vue 构造器,创建一个“子类”,Vu ...