7.31
java数组
一、基本概念
#一组数据,使用有序的方式对数据进行储存的一种结构
二、数组中的名字与属性
#数组的元素
#数组的 索引/下标/角标 ,每个元素的 标识/门牌号
#数组可以根据下标获取元素, 数组名[下标]
#数组的长度,元素的个数,数组名.length
三、数组的特性
#长度是固定的,不可变
#所有的数据类型都能定义自己的数组
#同一个数组,数据类型必须一致
四、创建数组(一维)
#静态 创建/初始化
1.完整写法
数据类型[] 数组名(变量名) = new 数据类型[]{数据1,数据2,数据3,数据n};
2.简约写法
数据类型[] 数组名(变量名) = {数据1,数据2,数据3,数据n};
#动态创建/初始化
不给定数据,但要已知长度
写法
数据类型[] 数组名(变量名) = new 数据类型[长度];
未输入时,虚拟机会给默认值
int[] 与整数类型的数组 :0
double[] 浮点型 :0.0
char[]字符数组 :0/空字符
boolean[] 布尔数组 :false
String[] 引用数据类型数组 :null
五、数组(对象)的名字
如:[I@15db9742
@代表分隔符
左边的[I 表示对象是int一维数组类型 ([[I表示int二维数组类型)
右边的15db9742 是一个十六进制的内存地址
进制的基础常识:十进制,没有十 0~9 10
二进制,没有二 0,1 10
十六进制没有十六 0~9,a,b,c,d,e,f 10
六、数组一定会遇到的bug
ArrayIndexOutOfBoundsException
数组 下标 超出 边界 异常 = 数组越界
七、数组中的思想
1.累加的思想
在 遍历数组 外定义一个"和"
在 遍历数组 过程中进行累加
在 遍历数组 结束后得到“和”的结果
2.统计的思想
在 遍历数组 过程中,满足条件,计数一下
在 遍历数组 过程中,还可以判断当前计数器
在 遍历数组 结束后,展示计数结果
3.求最值的思想
在 遍历数组 外定义一个参照物 变量名
在 遍历数组 过程中和每一个元素比对,如果更大
就赋值给变量
八、数组的修改
1.元素的修改
数组名[下标] = 新值
2.地址的修改
int[] array = {1,2,3,4,5};
array = new int[3];
int[] arr = new int[5];
array = arr;
3.数组的拷贝
#浅拷贝
赋值内存地址(本质上还是同一个对象)
#深拷贝
将某个数组(对象)中每一个元素,一个一个的 赋值 给目标数组的对应位置
本质上为两个对象,互不影响
支线任务:
1.静态创建和动态创建分别适合什么场景
2.数组的选择排序和冒泡排序
1.
2.
心得:数组遍历和循环单个使用还好,一旦混合使用或者嵌套就很考验逻辑思维能力,一定要能理清关系,实在不行可以画流程图进行辅助。