专栏首页王庆港的专栏Java编程基础阶段笔记 day06 二维数组
原创

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

二维数组

  • 二维数组声明
  • 二维数组静态初始化与二位初始化
  • 二维数组元素赋值与获取
  • 二维数组遍历
  • 二维数组内存解析
  • 打印杨辉三角
  • 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工具类
  • 数组常见异常

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java编程基础阶段笔记 day05 数组

    大数据港-王庆港
  • Java编程基础阶段笔记 day03 Java基本语法(中)

                    System.out.println("cccc");

    大数据港-王庆港
  • Java编程基础阶段笔记 day02 Java基本语法(上)

    ② char c1 = 'a'; char c2 = '中'; char c3 = '9';

    大数据港-王庆港
  • 支付宝Wap支付你了解多少?

    为了方便开发者生成一对RSA密钥支付宝提供一键生成工具,具体如何生成与配置密钥详见签名专区。

    Javen
  • java模拟登陆爬虫 原

    wuweixiang
  • vue小白快速入门

    一、vue是什么 Vue 是一套用于构建用户界面的渐进式框架。 压缩后仅有17kb 二、vue环境搭建 你直接下载并用 <script> 标签引入,Vue 会被...

    柴小智
  • 剑指 offer 面试题精选图解 04 . 二维数组中的查找

    今天分享的题目来源于 LeetCode 上的剑指 Offer 系列 04 . 二维数组中的查找。

    五分钟学算法
  • Netty整理(二) 顶

    我们将EchoServerHandler修改如下,增加全部的监听事件,并打印事件方法名称。

    算法之名
  • 你还在new对象吗?Java8通用Builder了解一下?

    这个示例最多支持三个参数的设置属性方法,也完全够用了。如果要扩展也很容易,依葫芦画瓢,添加多个参数的Consumer。

    搜云库技术团队
  • Java8通用Builder了解一下?

    这个示例最多支持三个参数的设置属性方法,也完全够用了。如果要扩展也很容易,依葫芦画瓢,添加多个参数的Consumer。

    用户5224393

扫码关注云+社区

领取腾讯云代金券