二维数组

Java里的二维数组其实是数组的数组,即每个数组元素都是一个数组。

每个数组的长度不要求一致,但最好一致。

		// 同样有两种风格的定义方法
int[][] _arr21_推荐 = { { 1, 2 }, { 3 } };
int arr22[][] = { { 1, 2 }, { 3 } };
// 另外还有一种刁钻的写法,据说在面试题中出现过
int[] arr23[] = { { 1, 2 }, { 3 } };

二维数组的初始化:

		int[][] _arr21 = { { 1, 2 }, { 3, 4 } };
// 不赋初始值,只是定义数组的大小
int[][] _arr22 = new int[2][3];
// 第二维度可以省略;第一维度告诉编译器有多少个数组,不能省
int[][] _arr23 = new int[2][];

例:表格数据输出

模拟豆瓣评分 《霸王别姬》 《阿甘正传》 《大话西游》
Andy 9.5 9.4 9.1
Bob 3 8.7 9
Cat 3 7 1
Dog 9.9 3 3
public class 二维数组 {
public static void main(String[] args) {
double[][] films = { { 9.5, 9.4, 9.1 }, { 3, 8.7, 9 }, { 3, 7, 1 }, { 9.9, 3, 3 } };
// 二维数组的遍历
System.out.println("###使用传统for循环###");
for (int i = 0; i < films.length; i++) {
for (int j = 0; j < films[i].length; j++) {
System.out.print(films[i][j] + "\t");
}
System.out.println();
}
System.out.println("###使用foreach语法###");
for (double[] ds : films) {
for (double d : ds) {
System.out.print(d + "\t");
}
System.out.println();
}
}
}

想想,是否还有更简单的输出方案?你至少有两种方案要说。


练习题:

判断一个3*3的矩阵是不是单位矩阵“Unit Matrix”(对角线上元素是1,其余元素是0)

1 0 0
0 1 0
0 0 1
public class 单位矩阵 {
public static void main(String[] args) {
int[][] m = { { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } };
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
if ((i == j && m[i][j] == 1)) {
// 1.对角线上元素是1
} else if (i != j && m[i][j] == 0) {
// 2.非对角线上元素是0
} else {
// 3.以上都不满足
System.out.println("不是单位矩阵");
return;
}
}
}
System.out.println("是单位矩阵");
}
}

Java基础教程——二维数组的更多相关文章

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

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

  2. java基础之二维数组-杨辉三角

    首先呢你要知道什么是杨辉三角? 答:杨辉三角,是二项式系数在三角形中的一种几何排列. 简单的说一下就是两个未知数和的幂次方运算后的系数问题,比如(x+y)的平方=x的平方+2xy+y的平方,这样系数就 ...

  3. Java基础(7):二维数组初始化时需要注意的问题

    二维数组可以先指定行,再指定列:但不能先指定列,再指定行 没有说明二维数组的行的个数,在定义二维数组时也可以只指定行的个数,然后再为每一行分别指定列的个数.如果每行的列数不同,则创建的是不规则的二维数 ...

  4. Java基础之二维数组的回顾

    class ArrayWork { /* * 二维数组的复习! * * 2014年4月2日 21:45:50 * * * **/ public static void main(String[] ar ...

  5. java基础之二维数组不定义列数

    有一种特殊的二维数组,它的行数确定,但是每行的列数不确定.这样的的数组实现方法:先创建制定行数,列数缺省的二维数组,然后对数组的每一行重新初始化.举例如下: package day5; //第二种定义 ...

  6. numpy基础教程--二维数组的转置

    使用numpy库可以快速将一个二维数组进行转置,方法有三种 1.使用numpy包里面的transpose()可以快速将一个二维数组转置 2.使用.T属性快速转置 3.使用swapaxes(1, 0)方 ...

  7. Java中的二维数组

    Java 中的二维数组 所谓二维数组,可以简单的理解为是一种"特殊"的一维数组,它的每个数组空间中保存的是一个一维数组. 那么如何使用二维数组呢,步骤如下: 1. 声明数组并分配空 ...

  8. java学习之二维数组

    java当中的二维数组,存储一组比较特殊的对象.他存储一个数组,同时存储的数组当中又存储着元素. java二维数组的声明方式一: class Arr2Demo { public static void ...

  9. JAVA生成一个二维数组,使中间元素不与相邻的9个元素相等,并限制每一个元素的个数

    JAVA生成一个二维数组,使中间元素不与相邻的9个元素相等,并限制每一个元素的个数 示例如下 至少需要九个元素:"A","B","C",&q ...

随机推荐

  1. B. Game of the Rows 解析(思維)

    Codeforce 839 B. Game of the Rows 解析(思維) 今天我們來看看CF839B 題目連結 題目 有如下圖片所示的飛機座位\(n\)排,和\(k\)隊士兵,每隊數量不一定. ...

  2. PHP定界符的用法

    当面临大段的负责的文本输入的时候,建议使用定界符. 例如: $age = 28; $str = <<<cont 第一行数据 第二行数据 特殊字符 ' " asdf abc ...

  3. Spark为什么只有在调用action时才会触发任务执行呢(附算子优化和使用示例)?

    Spark算子主要划分为两类:transformation和action,并且只有action算子触发的时候才会真正执行任务.还记得之前的文章<Spark RDD详解>中提到,Spark ...

  4. Linux下如何使用X86 CPU的GPIO

    目录 1.前言 2.linux pinctrl子系统 3. pin controller driver 4.手动构造device 1.前言 在arm嵌入式开发中,各个外设具有固定的物理地址,我们可以直 ...

  5. configfs_sample.c 理解

    1. 编译运行 代码从如下链接获得: https://github.com/torvalds/linux/blob/master/samples/configfs/configfs_sample.c ...

  6. PHP date_formate使用相关

    $date=date_create("2016-09-25"); echo date_format($date,"Y/m/d H:i:s");要使用date_f ...

  7. unicode与编码的关系

    参考链接先贴上来:https://blog.csdn.net/humadivinity/article/details/79403625https://www.cnblogs.com/kevin2ch ...

  8. find命令的简单使用

    Find命令 格式:find [option] [Path] [筛选条件] [处理动作] Path:默认当前目录 筛选条件:对文件/目录设置筛选条件 处理动作:默认显示所有文件 筛选条件: -name ...

  9. 使用Graph API 操作OneDrive 文件 权限 共享

    (Get)列出默认驱动器下(获取items id) /me/drive/root/children 如果想找其他驱动器使用/Drives 列出后可以查看到驱动器下的文件,其中items id就是文件的 ...

  10. itextpdf freemarker渲染

    现有需求涉及到打印pdf操作,简单找了俩种方式 在现有的模板上进行编辑,操作难度比较大 通过freemarker生成静态页面,在进行转换html,完美. 关于动态生成pdf,网上参考的挺多的,看来看去 ...