《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 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增.请完成一个搞笑的函数,输入这样的一个二维数组和一个整数,判断数 ...
随机推荐
- 跨域学习笔记1--跨域调用webapi
在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webapi的程序,如下图所示: 由于微软已 ...
- [转]Docker(三):Dockerfile 命令详解
本文转自:https://blog.csdn.net/ityouknow/article/details/79600406 上一篇文章Docker(二):Dockerfile 使用介绍介绍了 Dock ...
- HTTP状态码以及其含义大全
HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码.我们在开发过程中比较常见的状态码有:200(请求成功).301(页面重定向).404( ...
- 6.7 使用show profile 进行sql分析
1. 查看是否开启 show variables like 'profiling'; 2. 开启功能 set profiling = on 3. 运行sql #写的尽量耗时的sql,利于分析 sele ...
- CDRAF之Service mesh
最近翻看一些网上的文章,偶然发现我们的CDRAF其实就是Service mesh的C++版本.不管从架构的理念上,或者功能的支持上面,基本完全符合.发几个简单的文章链接,等有时间的时候,再来详细描述. ...
- JavaScript面试技巧之数组的一些不low操作
本文主要从应用来讲数组api的一些骚操作; 如一行代码扁平化n维数组.数组去重.求数组最大值.数组求和.js排序.对象和数组的转化等: 上面这些应用场景你可以用一行代码实现? 1.扁平化n维数组 1. ...
- 微信小程序 table 简单测试
<view class='AutoTable'> <view id='AutoTableItem'> <block wx:for="{{array}}" ...
- js-clickNumCount.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 贝塞尔曲线与CSS3动画、SVG和canvas的应用
简介 贝塞尔曲线是可以做出很多复杂的效果来的,比如弹跳球的复杂动画效果,首先加速下降,停止,然后弹起时逐渐减速的效果. 使用贝塞尔曲线常用的两个网址如下: 缓动函数:http://www.xuanfe ...
- CSS选择器:子选择符号
<html> <head> <style type="text/css"> .class>h2{color:red} </style ...