多维(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. R语言实战(一)——基础入门

    从今天开始接触R语言,主要参考的书籍是<R语言实战>. 1.安装R语言程序 Windows:http://mirror.bjtu.edu.cn/cran/ Linux:apt-get in ...

  2. “笨方法”学习Python笔记(2)-VS Code作为文本编辑器以及配置Python调试环境

    Visual Studio Code 免费跨平台文本编辑器,插件资源丰富,我把其作为Debug的首选. 下载地址:https://code.visualstudio.com/Download 安装之后 ...

  3. Java学习笔记之——final关键字

    最终的,最后的 可以修饰:变量.方法.类 (1) 修饰变量 不可改变,即常量,只能赋值一次,赋值之后不可改变 a. 修饰属性:private final int num; 要求属性要显式赋值 通常在属 ...

  4. 接触Java23天

    根据老师的要求写了一段然后在评讲的时候在修该一些: 猫的: public class Cat extends Animal{ public void methodCat(){ System.out.p ...

  5. JavaAndroid开发部分API

    JavaAndroid开发中的部分系统API 四大组件,都需要在清单文件中配置 Activity: 用来提供一个能让用户操作并与之交互的界面 onCreate(): 自动调用的方法, 在其中加载布局显 ...

  6. oracle中row_number() over()

    ROW_NUMBER() OVER函数的基本用法语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开 ...

  7. [HTML/CSS]下拉菜单

    原理:先让下拉菜单隐藏,鼠标移到的时候在显示出来 1>display 无动画效果,图片是秒出 2>opacity 有动画效果,我这里是1S出现,推荐配合绝对定位使用

  8. 解决在TP5中无法使用快递鸟的即时查询API

    快递鸟的接口对接其实很简单,先去官网注册账号,登陆把基本信息填好,然后在产品管理中订购一下“物流查询”,免费,不过其他产品是收费,免费的有对接口调用频率限制,结合自己的应用流量够用就可以. 使用前复制 ...

  9. 章节七、5-Maps

    一.向map集合中添加元素 map.put package ZangJie7; import java.util.HashMap; import java.util.Map; public class ...

  10. (网页)HTML中INPUT type="date"标签如何赋值注意问题(转)

    现在的html5 input标签支持type="date" 显示有日期的日历控件,一行简单的代码就能显示出一个日历控件,但是有的时候需要给它一个默认的日期值,这个时候可能就要用到v ...