第05章:随堂复习与企业真题(数组)
第05章:随堂复习与企业真题(数组)
一、随堂复习
1. 数组的概述
- 数组,就可以理解为多个数据的组合。
- 是程序中的容器:数组、集合框架(第12章,List、Set、Map)
- 数组存储的数据的特点:依次紧密排列的、有序的、可以重复的
- 此时的数组、集合框架都是在内存中对多个数据的存储。
- 数组的其它特点:一旦初始化,其长度就是确定的、不可更改的
2. 一维数组的使用(重要)
1 | > 数组的声明和初始化 |
3. 二维数组的使用(难点)
- 二维数组:一维数组的元素,又是一个唯一数组,则构成了二维数组。
1 | > 数组的声明和初始化 |
4. 数组的常用算法(重要)
- 数值型数组的特征值的计算:最大值、最小值、总和、平均值等
- 数组元素的赋值。比如:杨辉三角;彩票随机生成数(6位;1-30;不能重复);回形数
- 数组的复制、赋值
- 数组的反转
- 数组的扩容、缩容
- 数组的查找
- 线性查找
- 二分法查找(前提:数组有序)
- 数组的排序
- 冒泡排序:最简单
- 快速排序:最常用
5. Arrays工具类的使用
- 熟悉一下内部的常用的方法
- toString() / sort() / binarySearch()
6. 数组中的常见异常
- ArrayIndexOutOfBoundsException
- NullPointerException
二、企业真题
1. 数组有没有length()这个方法? String有没有length()这个方法?(*蓝)
数组没有length(),是length属性。
String有length()
2. 有数组int[] arr,用Java代码将数组元素顺序颠倒(闪*购)
略
3. 为什么数组要从0开始编号,而不是1(中*支付)
数组的索引,表示了数组元素距离首地址的偏离量。因为第1个元素的地址与首地址相同,所以偏移量就是0。所以从0开始。
4. 数组有什么排序的方式,手写一下(平*保险)
冒泡。
快排。(讲完递归方法以后,大家就可以练习一下)
5. 常见排序算法,说下快排过程,时间复杂度?(5*到家)
见课件。
快排:O(nlogn)
6. 二分算法实现数组的查找(神舟*天软件)
略
7. 怎么求数组的最大子序列和(携*)
1 | /* |
8. Arrays 类的排序方法是什么?如何实现排序的?(阿*、阿*校招)
略