数组:定义大量的同类型的变量
1. 通过下标来使用数组中的元素时,不能够超出数组实际大小范围。
2. 对象、数组的声明
数组数据类型数组名称[]
数组数据类型[] 数组名称
注意中括号的位置可以放在数组名后,或者放在数组类型后。
数组声明,仅仅是生成了一个数组名称的引用,数组还没有创建,指向的位置是不确定的。
3. 对象、数组的创建
new 类型名()
new 类型名[数组长度]
对象变量的名称是一个引用,表示的是对象数据在内存中的首地址;
数组名称也是一个引用,表示的数组中第一个元素在内部中的首地址
Java中会自动对数据进行初始化。
完整数组的定义:
数组数据类型数组名[] = new 数组数据类型[数组长度]; 即 声明 + 创建
4.获取数组的属性:
数组名称.length 可以获得数组的长度。
下标的范围:0 ~ length-1
5. 静态方法—可以直接通过类型名来调用,不必由定义的具体对象变量来调用
这里的类型名,可以是Character, Integer, Double, String, Arrays等等。
6. Arrays 的基本操作
数组内容的输出:Arrays.toString(数组名称)
将数组中的所有元素值按照它们在数组中的存储顺序转换为一个字符串,这个字符串两端用中括号来标识。
如:[97, 96, 83, 90, 54, 45, 32, 34, 23]
数组的填充:Arrays.fill(数组名称, 起始下标, 结束下标, 元素值)。
适合于数组中有很多相邻元素具有相同的值的情形。
注意,结束下标是第一个不必填充的元素的下标。
数组的复制:copyOf(数组名称, 新数组长度) 全部复制
copyOfRange(数组名称, 起始下标, 结束下标) 部分复制
数组的比较: equals(数组名1, 数组名2)
deepEquals(数组名1, 数组名2)
两者的区别是 equals 只用来比较一维的元素,如果是一维数组,就是比较数组元素的值;如果是多维数组,就是比较它的第一维的引用地址。而deepEquals则刨根问底式的比较,一直要找到最终的各个元素进行比较。多维比较用deepEquals.
数组的排序:sort(数组名)
Sort(数组名, 起始下标, 结束下标)
用来将数组中的元素按数值从小到大的顺序进行排列。
数组的查找:binarySearch(数组名称, 查找数值)
binarySearch(数组名称, 起始下标, 结束下标, 查找数值)
采用的是“二分查找”法,只能应用于已经排好序(从小到大)的数组
当数组中有多个数值时,只能找出其中的一个,而且找到的这个元素不一定位于最前面
如果查找成功,则返回所要查找数值的下标;查找失败,则返回值为-(插入下标)-1