二维数组

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. E. Copying Data 解析(線段樹)

    Codeforce 292 E. Copying Data 解析(線段樹) 今天我們來看看CF292E 題目連結 題目 給你兩個陣列\(a,b\),有兩種操作:把\(a\)的一段複製到\(b\),或者 ...

  2. java数据结构-06双向循环链表

    双向循环链表跟单向链表一样,都是头尾相连,不过单向是尾指向头,双向是头尾互相指,可以从前往后查,也可以从后往前查 无头结点的双向循环链表 public class CircleLinkedList&l ...

  3. git下载线上分支到本地分支

    首先执行 'git branch -r' 查看线上的所有分支 例如像要拷贝线上分支 'origin/online' 到本地本地分支 'online',则执行 'git checkout -b onli ...

  4. 专题二:redis的数据类型之string

    一.redis的数据存储格式 redis本身是一个Map,其中所有的数据都是采用 "key:value"的方式进行存储的. 我们说的数据类型是数据存储的类型,也就是对应下图的val ...

  5. Java学习的第五十天

    1.求长方体的体积要求类中用但参数的方法去求 public class Cjava { public static void main(String[]args) { Box b1=new Box(1 ...

  6. websocket报400错误

    解决方案看了下讨论区说的方案,问题出现在nginx的配置文件,需要修改nginx.conf文件.在linux终端中敲入vim /etc/nginx/nginx.conf,找到location这个位置, ...

  7. error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“

    python3 是用 VC++ 14 编译的, python27 是 VC++ 9 编译的, 安装 python3 的包需要编译的也是要 VC++ 14 以上支持的. 可以下载安装这个: 链接:htt ...

  8. 云计算之路-出海记:整一台 aws 免费云服务器

    上次蹭到一张船票,登上了 aws 这艘巨轮,今天要在船上的免费餐厅吃一顿免费晚餐 -- 整一台 aws 免费套餐中的 EC2 服务器体验一下. 进入 EC2 控制台,点击"启动实例" ...

  9. 利用 Docker 构建一个简单的 java 开发编译环境

    目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本.如果想切换自己本地的 Java 开发环境 ...

  10. 记一次ns3的安装过程

    官方安装教程:https://www.nsnam.org/wiki/Installation 推荐使用Ubuntu18.04,Ubuntu20.04有些依赖无法下载. 准备工作 # 如果下载速度很慢, ...