1 数组概述
数组是具有相同数据类型的一组数据的集合,数组中的每个元素具有相同的数据类型在Java中同样将数组看做一个对象,虽然基本数据类型不是对象,但由基本数据类型组成的数组确是对象。在程序设计中引入数组可以更有效的管理和处理数据。可根据数组的维数将数组分为一维数组,二维数组......
2 一维数组
创建一维数组
先声明,再用new关键字进行内存分配。声明一维数组有以下两种方式
数组元素类型 数组名字【】;
数组元素类型【】 数组名字;
3 二维数组
数组的声明:
数组元素的类型【】 数组名;
数元素的类型 数组名 【】;
4 数组的基本操作
遍历数组:
遍历数组就是获取数组中的每个元素,通常遍历数组都是用for循环来实现
填充替换数组元素:
数组中的元素定义完后,可以跳过Array类的静态方法fill()来对数组中的元素进行替换,fill()方法有两种参数
填充替换语法:
fill(数组名,值)
填充替换部分元素语法:(前改后不改)
fill(数组名,前索引,后索引,值)
对数组进行排序:
通过Array类的静态方法sort()可以对数组进行排序
语法:
Array.sort(数组名)
复制数组:
Array中的copyOf()方法与copyOfRange()方法可以实现对数组的复制
复制语法:(空位补0,溢出去掉)
copyOf(数组名,复制的长度)
查询数组:
Array中的binarySearch()方法,可以用二分搜索法来搜索指定数组,以获得指定对象,它有两种方法
查询语法:(先排序再查询)
binarySearch(数组名,值)
5 数组排序算法
冒泡排序:
是最常用的数组排序算法之一,它排序数组元素的过程总是将小的数往前放,较大的往后放,类似水中冒泡往上升的动作,所以叫冒泡排序
比较相邻的元素,把较小的元素移动到数组前面,把较大的元素放到数组后面,这样较小的元素就像气泡一样从底部上升到顶部
冒泡排序由双层循环实现,外层循环用于控制层数,一般要循环数组长度减一次才能保证完成排序,内层循环主要用于对比数组中每个相邻的元素大小判断是否交换位置
直接选择排序:
属于一种选择排序,排序速度要比冒泡排序快点,也是常用的排序,初学者应该掌握
将指定排序位置元素与其他数组元素对比,如果满足条件就交换元素值,直接排序并不是和冒泡排序一样交换相邻元素,而是把满足条件的元素与指定的排序位置元素交换
挑出元素中最小或者最大的一个元素,顺序的放在已排序好的数列的最后,直到全部待排序的数据元素排列完
反转排序:
以相反的顺序把原有数组的元素重新排序,也是经常用到的一种排序方法
将数组最后一个元素和第一个元素交换,倒数第二个元素和第二个元素交换,以此类推,直到把所有元素反转替换
反转排序是对数组两边的元素进行替换,所以只需要循环数组长度的半数次,如果数组长度位奇数,例如数组长度为7,那么只会循环3次,中间的数不变