数组
Array 方法是[]
数组的特性
数组的长度是通过数组名,length 来获取
数组的下标是长度减1 从0开始
如果访问到了不存在的下标,会数组下标越界异常
数组用来存多个相同类型的集合
数组的长度一旦创建不可改变
只要是数组就是引用类型
程序创建数组 int[] a = new int[5]; 时发生了什么?
1.在内存中开辟连续的空间,用来存放数据,长度是5
2.给数组完成初始化过程,给每个元素赋予默认值,int类型默认值是0
3.数组完成初始化会分配一个唯一的地址值
4.把唯一的地址值交给引用类型的变量a去保存
数组的创建一般分为静态创建和动态创建
静态创建有2种
char[]c={‘h’,‘e’,‘l’,‘l’,‘o’}; 第一种
char[]c2=new char[]{‘h’,‘e’,‘l’,‘l’,‘o’};第二种
效果图
动态创建-先指定类型与长度,后续存自定义的值跟据数组的下标
创建了char类型的数组变量名为c3
用变量名c3通过数组的下标来操作数据的具体内容,定义自己的数据
数组的遍历
前提:普通数组的打印只能查看数组中的元素,不能操作,所以如果想要操作数组中的每个元素,可以遍历
遍历:把数组中的元素逐一"过一遍"
通过循环遍历数组,所以玄幻变量代表的是数组下标
数组的工具类
toString(数组名),除了char类型以外,其他类型的数组想要查看数组的具体元素,都要使用这个方法,如果不用,打印的是数组的地址值
sort(数组名),给数组进行排序
copyOf(要复制的数组 数组的长度)
如果新的长度大于原数组的长度–数组的扩容
如果新的长度小于原数组的长度–数组的缩容
如果新的长度等于原数组的长度–数组的复制
注意:不管是什么长度,都不是修改原数组,而是创建新数组
1.Arrays.toString工具
图解
同种定义了一个String类型的数组变量名为s,s是引用类型的变量保存的是数组的地制值,由于之前我们定义的char类型做了底层处理,所以char[]数组可以直接打印具体内容,除了char类型以为,其他定义的类型都需要添加工具
2.copyOf工具 复制 扩容 缩容
图解
使用工具copyOf复制:复制通过数组名跟数组的长度复制想要复制的数组
使用工具copyOf缩容:他会创建指定长度的数组,然后按照这个指定长度从原来定义的数组中赋值对应个数元素类似于截取的效果
使用工具copyOf扩容:他会创建新的指定长度的数组,然后按照这个长度从原来定义的数组中赋值这个元素,没有复制到的元素就是数组的默认值,如果定义了int类型的数组,它的默认值是0