Java编程基础阶段笔记 day06 二维数组
|
二维数组 |
|
笔记Notes
|
二维数组的元素是一维数组
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(); } } }
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 |
|
Java编程基础阶段笔记 day06 二维数组的更多相关文章
- Java编程基础阶段笔记 day 07 面向对象编程(上)
面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个 ...
- Java编程基础阶段笔记 day04 Java基础语法(下)
day04 Java基础语法 (下) 笔记Notes要点 switch-case语句注意 switch-case题目(switchTest5) 循环执行顺序 if-else 实现3个整数排序 Stri ...
- Java编程基础阶段笔记 day01 Java语言概述
目录内容 DOS命令 电脑配置 Java语言的特性 Java两种核心机制 Java语言环境搭建 第一个Java程序 注释 Java语句说明 编程风格 作业 常用的DOS命令 dir : 列出当 ...
- java基础-引用数据类型之二维数组(Array)
java基础-引用数据类型之二维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我们学习过了Java的一维数组,所谓的二维数组就是元素是一堆一维数组的数组,换 ...
- “全栈2019”Java第三十一章:二维数组和多维数组详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- JAVA编程思想读书笔记(二)--容器
接上篇JAVA编程思想读书笔记(一) 第八章.对象的容纳 No1: java提供了四种类型的集合类:Vector(矢量).BitSet(位集).Stack(堆栈).Hashtable(散列表) No2 ...
- java 数组基础学习(一维二维数组)
1.一维数组 1>静态初始化:数据类型[ ] 变量名 = {元素} 例:int[ ] arr = {1,2} 动态初始化:数据类型[ ] 变量名 = new数据类型[数据长度] 例:int[ ] ...
- C语言笔记(二维数组与数值指针)
一.关于二维数组和二维数组区别 (1)一维数组在内存中是连续分布存储的,同样,二维数组也是在内存连续存储的.所以从内存的角度来分析,一维数组和二维数组其实没有本质区别. (2) 二维数组可以使用一维数 ...
- 【Java】 剑指offer(3) 二维数组中的查找
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上 ...
随机推荐
- Node.js实现PC端类微信聊天软件(二)
Github StackChat 用到的React-Router React-Router是React路由的解决方案之一,也可以使用别的库 安装 npm install react-router -- ...
- 开源系统监控工具Nagios、Zabbix和Open-Falcon的功能特性汇总及优缺点比较
Nagios Nagios 全名为(Nagios Ain’t Goona Insist on Saintood),最初项目名字是 NetSaint.它是一款免费的开源 IT 基础设施监控系统,其功能强 ...
- RT-thread线程创建:动态线程与静态线程
本文介绍了如何创建一个动态线程和一个静态线程 RT-thread版本:RT-thread system 3.1.0 开发环境:MDK5 为了编程方便,创建了sample1.c文件,然后添加到工程中 话 ...
- JAVA写入大文件DEMO
/** * 读取filePath的文件 * @param filePath 文件的路径 * @return List集合 文件中一行一行的数据 ...
- 玲珑OJ 1083:XJT Love Digits(离线处理+哈希)
http://www.ifrog.cc/acm/problem/1083 题意:比较好懂.注意答案的x不包含ax本身,所以才输出-1. 思路:离线处理.根据x排序,然后每次更新Hash[]数组就好了. ...
- Google 的 Java 编码规范,参考学习!
这份文档是 Google Java 编程风格规范的完整定义.当且仅当一个 Java 源文件符合此文档中的规则, 我们才认为它符合 Google 的 Java 编程风格. 与其它的编程风格指南一样,这里 ...
- Ceph Plugin - Dashboard - By Anoyi
▶ 部署 Dashboard 1.安装 ceph-mgr-dashboard yum install -y ceph-mgr-dashboard 2.禁用 SSL ceph config set mg ...
- @Bean 注解全解析
目录 @Bean 基础声明 @Bean 基本构成及其使用 @Bean 注解与其他注解产生的火花 @Profile 注解 @Scope 注解 @Lazy 注解 @DependsOn 注解 @Primar ...
- 什么是JDK什么是JRE?JDK和JRE的关系
什么是JDK什么是JRE?JDK和JRE的关系 我们看看来自百度百科的解释: JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心 ...
- Android安卓书籍推荐《Android驱动开发与移植实战详解》下载
百度云下载地址:点我 Android凭借其开源性.优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为市场占有率很高的智能手机操作系统. <Android驱动开发与 ...