二维数组

笔记Notes

  • 二维数组
  • 二维数组声明
  • 二维数组静态初始化与二位初始化
  • 二维数组元素赋值与获取
  • 二维数组遍历
  • 二维数组内存解析
  • 打印杨辉三角
  • Arrays工具类
  • 数组中常见的异常
  • 二维数组

二维数组的元素是一维数组

  • 二维数组的声明和初始化

String [][] persons;

String persons2[][];

String [] persons3[];

  • 二维数组的初始化
  • //静态初始化

persons = new String[][]{{"小龙哥","110"},{"小仓","119"},{"小强","120"}};

//声明和初始化不能分开

int[][] numbers = {{1,2},{3,4},{5,6}};

  • //动态初始化

persons2 = new String[3][2];

//3值得是二维数组长度,2指的是二维数组元素(一维数组)的长度

//创建一个长度为3的二维数组,二维数组的元素为null

persons3 = new String[3][];

persons3[0] = new String[2];

persons3[1] = new String[3];

  • 获取二维数组的值,元素的值

String aString = persons3[2][2];

int a = persons3.length;

int b = persons3[0].length;

  • 遍历二维数组的元素

//遍历二维数组

for (int i = 0; i < numbers.length; i++) {

for (int j = 0; j < numbers[i].length; j++) {

System.out.print(numbers[i][j] + " ");

}

System.out.println();

}

  • 二维数组内存解析
  • 打印杨辉三角

使用二维数组打印一个 10 行杨辉三角。

【提示】

1. 第一行有 1 个元素, 第 n 行有 n 个元素

2. 每一行的第一个元素和最后一个元素都是 1

3. 从第三行开始, 对于非第一个元素和最后一个元素的元素。即:

yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];

public class YangHui {

public static void main(String[] args) {

//创建二维数组

int[][] numbers = new int[10][];

//给二维数组的元素赋值

for (int i = 0; i < numbers.length; i++) {

//创建二维数组的元素(一维数组)

numbers[i] = new int[i + 1];

//给二维数组中的元素的第一个元素和最后一个元素赋值

numbers[i][0] = numbers[i][i] = 1;

//遍历二维数组中的元素(一维数组),不包括第一个和最后一个

for (int j = 1; j < numbers[i].length - 1; j++) {

numbers[i][j] = numbers[i - 1][j] + numbers[i - 1][j - 1];

}

}

//遍历二维数组

for (int i = 0; i < numbers.length; i++) {

for (int j = 0; j < numbers[i].length; j++) {

System.out.print(numbers[i][j] + " ");

}

System.out.println();

}

}

}

  • Arrays工具类使用

int[] ns = {5,2,30,4,1,90};

int[] ns2 = {5,2,3,4,1};

//比较两个数组是否相等 : 比较的是内容,个数,顺序

boolean equals = Arrays.equals(ns, ns2);

System.out.println(equals);

//输出数组信息

String nsStr = Arrays.toString(ns);

System.out.println(nsStr);

//将指定的数值填充到数组中

Arrays.fill(ns, 100);

System.out.println(Arrays.toString(ns));

//对数组中的内容进行排序

Arrays.sort(ns);

System.out.println(Arrays.toString(ns));

//二分法查找 - 使用前必须先排序 - 如果找不到会返回负数

int index = Arrays.binarySearch(ns, 4);

System.out.println(index);

  • 数组中常见的异常

//1.数组下角标越界 :ArrayIndexOutofBoundsException

int[] numbers = new int[2]; //索引值合理范围 :0 ~ 长度-1

System.out.println(numbers[2]); //发生了异常

System.out.println(numbers[-1]); //发生了异常

//2.空指针异常 :: NullPointerException

String str = "aaa";

str = null;

System.out.println(str.toUpperCase());//发生了异常

String[] names = new String[2];

System.out.println(names[0].toUpperCase());//发生了异常

String[][] persons = new String[3][];

System.out.println(persons[0][0]); //发生了异常

System.out.println(persons[0].length); //发生了异常

  • 习题:数组声明

声明:int[] x,y[]; 在给x,y变量赋值以后,以下选项允许通过编译的是:

a ) x[0] = y; //类型不符,x[0]为int类型,而y为引用类型

b) y[0] = x; //可以

c) y[0][0] = x; //类型不否,x为引用类型,而y[0][0]为int类型

d) x[0][0] = y; //x为一维数组

e) y[0][0] = x[0]; //可以

f) x = y; //类型不符,一个是一维数组,一个是二维数组

提示:

一维数组:int[] x 或者int x[]

二维数组:int[][] y 或者 int[] y[] 或者 int y[][]

总结Summary

  • 二维数组遍历
  • 二维数组内存解析
  • 杨辉三角
  • Arrays工具类
  • 数组常见异常

遍历二维数组_Java编程基础阶段笔记 day06 二维数组相关推荐

  1. Java编程基础阶段笔记 day06 二维数组

    二维数组 笔记Notes 二维数组 二维数组声明 二维数组静态初始化与二位初始化 二维数组元素赋值与获取 二维数组遍历 二维数组内存解析 打印杨辉三角 Arrays工具类 数组中常见的异常 二维数组 ...

  2. java编程基础笔记_Java编程基础阶段笔记 day01 Java语言概述

    常用的DOS命令 dir :    列出当前目录下的文件以及文件夹 md :   创建目录 rd :     删除目录 cd :    进入指定目录 cd.. :  退回到上一级目录 cd\:     ...

  3. Java编程基础阶段笔记 day 07 面向对象编程(上)

    ​ 面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个 ...

  4. Java编程基础阶段笔记 day04 Java基础语法(下)

    ​ 面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个 ...

  5. Unity超基础学习笔记(二)

    Unity超基础学习笔记(二) 1. 基本数据类型的扩展 之前在K12中学习了一些基本的数据类型,实际上C#支持更多的数据类型.如下: 注意无符号整型数和有符号整型数的表示范围,例如: int 能表示 ...

  6. GUI的演化和python编程——Python学习笔记之二十二

    GUI的演化和python编程--Python学习笔记之二十二 写完了有关长寿的两篇博文,本该去完成哥德尔那个命题六的.对计算机图形界面的好奇,让我把注意力暂时离开那个高度抽象难读的哥德尔,给转到计算 ...

  7. 【C#编程基础学习笔记】6---变量的命名

    2013/7/24 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]6---变量的命名 ----- ...

  8. 【C#编程基础学习笔记】4---Convert类型转换

    2013/7/24 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]4---Convert类型转换 ...

  9. 汤家凤线性代数基础阶段笔记并标记重点

    本文内容为汤家凤线性代数基础阶段笔记并标记重点,源文件已经上传到主页中的资源一栏中,有需要的可以去看看, 我主页中的思维导图中内容大多从我的笔记中整理而来,相应技巧可在笔记中查找原题,有兴趣的可以去 ...

最新文章

  1. OFRecord 图片文件制数据集
  2. 图解 Git 工作原理
  3. 产品运行所需的信息检索失败_域名解析失败
  4. RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)
  5. python 实现装饰器设计模式
  6. 企业数字化转型过程中,如何真正把数据用起来、用的对、用的好?
  7. 数据库报错SELECT list is not in GROUP BY clause and contains nonaggregated col
  8. python怎么汇总数据_如何在Pandas Python中汇总数据?
  9. Python入门--列表的创建
  10. Office for Mac升级提醒如何去掉?关闭Mac的Microsoft AutoUpdate弹框提示
  11. resultset java 类型_java 中的resultset的类型
  12. cat的用法matlab,MATLAB中“repmat”与“cat”函数的用法
  13. 小米潘多拉路由器添加节点_小米mesh好用吗?AX3600AX1800 混组测试
  14. 为eclipse3.6安装subversive插件
  15. WeCenter 文件目录结构
  16. 第1章 MVX模式与Vue.js
  17. 【优化选址】基于遗传算法进行厂区布置优化附matlab代码
  18. uniapp遮罩_APP新手引导遮罩层设计与UI视觉界面设计欣赏
  19. 华为运营商级路由器配置示例 | EVdPdNd VPLS over SRv6 TE Policy(静态配置)
  20. ORA-00257 错误处理

热门文章

  1. android+ebook控件,Android 自定义控件 eBook 翻书效果
  2. stm32中断优先级_关于STM32 (Cortex-M3) 中NVIC的分析(转)
  3. ni软件可以卸载吗_最强大的电脑端卸载软件!和你想的一样吗?进来看看!
  4. laravel打印sql语句_SQL语句为什么慢?索引为什么失效?
  5. Hyper-V 和Ubuntu Server 16.04 配置静态IP
  6. word2vec介绍
  7. VMware Fusion 静态ip
  8. 适用于 Python 的 10 大最佳 IDE,你 Pick 哪一款?
  9. 动态“神还原”李焕英旧照,用技术致敬每一位妈妈!
  10. 送一台自用笔记本电脑!新款