Java复习小结(一)——数组
问题引入
现在需要统计某项目组员工的工资情况,例如需要统计平均工资、最高工资。最低工资等,假如有5名员工你会怎样解决?如果人数变为60人甚至更多人呢?
数组概念
1、数组是存储同一种数据类型多个元素的集合,也可以看成是一个容器,特点是有多个元素并且元素类型相同
2、数组既可以存储基本数据类型,也可以存储引用数据类型
3、数组属于引用类型,可以理解为对象(Object),数组中的每个元素相当于该对象的成员变量
4、数组一旦初始化长度不可变,数组长度:数组名.length
数组的定义格式
格式一:数组类型[] 数组名;
格式二:数组类型 数组名[];
这两种定义做完了数组中没有是没有元素值的
数组初始化
概述
1、Java中的数组必须先初始化然后才能使用
2、所谓的初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值
初始化方式
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
格式:数据类型[] 数组名 = new 数据类型[数组长度];,数组长度其实就是数组中元素的个数,每个数组都有一个属性length指明它的长度。例如:int[] arr = new int[3];,定义了一个int类型的数组,这个数组中可以存放3个int类型的值
输出数组中的元素值:数组中的每个元素都是有编号的,并且从0开始。最大编号是数组的长度-1。数组名和编号的配合就可以获取数组中的指定编号的元素。这个编号的专业叫法是索引(下标)。通过数组名访问数据的格式是:数组名[下标]。
静态初始化:初始化时指定每个元素的初始值,由系统决定数组长度
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...}; ,例如:int[] arr = new int[]{1,2,3};,这就定义了一个int类型的数组,这个数组中可以存放3个int类型的值,并且值分别为1,2,3。这还可以简写为int[] arr = {1,2,3};
常见问题
数组索引越界
ArryIndexOutOfBoundsException,访问到了数组中的不存在的索引时发生
空指针异常
NullPointerException,数组没有指向实体,却在操作实体中的元素。
数组常见操作
1、数组遍历(依次输出数组中的每一个元素),增强for循环、普通for循环、while。
2、数组获取最值(获取数组中的最大值最小值)
3、数组元素逆序
4、数组元素查找(查找指定元素第一次在数组中出现的索引)
5、数组排序:冒泡排序、选择排序等
二维数组
二维数组概述
二维数组就是一个元素为一维数组的数组
二维数组定义格式
格式一:数据类型[][] 变量名 = new 数据类型[m][n]; m表示这个二维数组有多少个一维数组,n表示每一个一维数组的元素个数。举例:int[][] arr = new int[3][2]; 定义了一个二维数组arr,这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2],每一个一维数组有两个元素,可以通过arr[m][n]来获取,表示获取第m+1个元素
格式二:数据类型[][] 变量名 = new 数据类型[m][];
格式三:数据类型[][] 变量名 = new 数据类型[][]{{元素..},{元素...},{元素...}}
二维数组遍历
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 关于fixture.debugElement.query(By.css)这个方法的一个疑问
- codeforces 1334C(前缀和)
- Angular通过依赖注入机制注入一个对象的例子
- 简易数据分析(七):Web Scraper 抓取表格、分页器翻页数据
- codeforces 1327C(构造)
- zabbix分布式及高可用
- Angular单元测试的spyOn使用一例
- SQL-JOIN全解析
- Node.js上传单文件和多文件的一些示例博客和源代码
- ES6中的箭头函数=>
- 22 个让 React 开发更高效更有趣的工具
- JavaScript中==和===的区别
- 解决:打包SpringBoot项目成jar包后,其他的项目无法引入jar包中的对象
- 【分享】MPSoC R5引导4个A53和两个R5的应用程序的例子
- 【分享】MPSoC交叉编译例子