《Java大学教程》—第16章 二维数组
多维(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章 二维数组的更多相关文章
- 【Java】 剑指offer(3) 二维数组中的查找
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上 ...
- 【C语言入门教程】4.2 二维数组
C 语言允许使用多维数组,即使用多组小标的数组,二维数组是最常用的多维数组.多维数组在内存中存放数据的顺序与一维数组相同,使用连续的存储单元. 4.2.1 二维数组的一般形式 二维数组的一般声明形式为 ...
- 《java入门第一季》之二维数组
/* 格式2: 数据类型[][] 数组名 = new 数据类型[m][]; m:表示这个二维数组有多少个一维数组. 列数没有给出,可以动态的给.这一次是一个变化的列数. */ class Array2 ...
- Java编程基础阶段笔记 day06 二维数组
二维数组 笔记Notes 二维数组 二维数组声明 二维数组静态初始化与二位初始化 二维数组元素赋值与获取 二维数组遍历 二维数组内存解析 打印杨辉三角 Arrays工具类 数组中常见的异常 二维数组 ...
- 《Java基础知识》一维,二维数组的申明和使用
为什么要使用数组: 因为不使用数组计算多个变量的时候太繁琐,不利于数据的处理. -------- 数组也是一个变量,是存储一组相同类型的变量 声明一个变量就是在内存中划出一块合适的空间 声明一个数 ...
- Java基础系列(39)- 二维数组
多维数组 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组. 二维数组 int a[][]=new int[2][5]; 解析:以上二维数组a可以看成一个 ...
- Java菜鸟学习笔记--数组篇(三):二维数组
定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...
- java基础编程——二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- LeetCode二维数组中的查找
LeetCode 二维数组中的查找 题目描述 在一个 n*m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增.请完成一个搞笑的函数,输入这样的一个二维数组和一个整数,判断数 ...
随机推荐
- Python爬虫之多线程下载豆瓣Top250电影图片
爬虫项目介绍 本次爬虫项目将爬取豆瓣Top250电影的图片,其网址为:https://movie.douban.com/top250, 具体页面如下图所示: 本次爬虫项目将分别不使用多线程和使 ...
- C#操作DataReader类
一.常用属性 名称 说明 Depth 获取一个值,用于指示当前行的嵌套深度 FieldCount 获取当前行中的列数 HasRows 获取一个值,该值指示 SqlDataReader 是否有行 IsC ...
- windows 下 nginx 配置文件路径
nginx在windowns下路径 http{ #虚拟主机1 server{ listen 80; #监听端口,基于IP配置的时候变更此处,比如192.168.1.100:8080; server_n ...
- [PHP]算法-旋转数组的最小值的PHP实现
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组 ...
- 1.Linux电源管理-休眠与唤醒
1.休眠方式 在内核中,休眠方式有很多种,可以通过下面命令查看 # cat /sys/power/state //来得到内核支持哪几种休眠方式. 常用的休眠方式有freeze,standby, mem ...
- mybatis_02简单操作数据库
模糊查询用户信息 <!-- [${}]:表示拼接SQL字符串 [${value}]:表示要拼接的是简单类型参数. 注意: 1.如果参数为简单类型时,${}里面的参数名称必须为value 2.${ ...
- Netty实战九之单元测试
ChannelHandler是Netty应用程序的关键元素,所以彻底地测试他们应该是你的开发过程的一个标准部分.最佳实践要求你的测试不仅要能够证明你的实现是正确的,而且还要能够很容易地隔离那些因修改代 ...
- Python mysql 创建连接
安装 pymysql 模块 pip3 install pymysql # python2, 默认无 pip 命令 # python3, 默认自带 pip3 命令 mysql基本操作 # 导入 pymy ...
- PHP7.27: Cookie and Session
<?php // 有的浏览器不支持Cookie,这要考虑的 $cFile="count.txt"; $acctime=time(); if(file_exists($cFil ...
- vuejs2.0实现分页组件,使用$emit进行事件监听数据传递
上一篇文章介绍了vuejs实现的简单分页,如果我有几个页面都需要有分页效果,不可能每个页面都去复制一下这段代码吧,意思是封装一下,变成通用的组件. 首先使用基础 Vue 构造器,创建一个“子类”,Vu ...