数组
1. 数组的创建过程
在内存中开辟连续的空间,用来存放数据
给数组完成初始化过程,给每个元素赋予默认值
数组完成初始化会分配一个唯一的地址值
把唯一的地址值交给引用类型的变量a去保存
如果想要操作数组中的元素,通过下标来操作
注意:数组名是个引用类型的变量,它保存着的是数组的地址,不是数组中的具体数据
2. 数组的特性
数组的长度通过**数组名.length;**来获取
数组一旦创建,长度无法改变
数组的下标从0开始,最大下标为数组长度-1
如果访问到了不存在的下标,会数组下标越界异常
3. 数组的工具类Arrays
toString(数组名),除了char类型以外,其他类型的数组想要查看数组的具体元素,都得使用这个方法,如果不用,打印是数组的地址值
sort(数组名),给数组进行排序
copyOf(要复制的数组,新数组的长度)
如果新的长度大于原数组的长度–数组的扩容
如果新的长度小于原数组的长度–数组的缩容
如果新的长度等于原数组的长度–普通的复制
注意:不管是什么长度,都不是修改原数组,而是创建新数组
4. 数组的遍历
前提:普通数组的打印只能查看数组中的元素,不能操作,所以如果想要操作数组中的每个元素,可以遍历
遍历:把数组中的元素逐个“过一遍”
通过循环遍历数组,所以循环变量代表的是数组下标
5. 冒泡排序
排序思路:要比较多轮,每轮两个相邻的元素做比较,位置不对就互换
代码思路:
通过嵌套for循环来完成
外层循环:控制的是轮数,如果有n个数,最多n-1轮
内层循环:控制的是每轮中比较的次数,每一轮的次数会递减,之前轮确定的最大值不应该参与后面轮的比较
注意:外层循环的循环变量代表的是轮数1 2 3 4…
内层循环的循环变量代表的是数组的下标[0,a.length-i)