数组概述
1、数组创建、初始化
(1)、创建数组:int arr[]; int型数组创建
String arr[]; String型数组创建
分配内存空间,必须指明长度:arr = new String[5]; / arr = new int[5];
(2)、初始化数组:int arr[] = new int[5];
int arr2[] = {1,2,3,4,5,6};
2、二维数组
int myarr[][] = {{1,2},{3,4}};
3、遍历数组:
最常见的是使用for循环遍历数组,长度arr.length();
foreach也是常用的遍历数组的方式,以二维数组举例:
for(int x[] : myarr){};
4、数组元素替换,Arrays.fill()方法:
Arrays.fill(int[] a,int value) a:需要填充替换的数组,value:要存储数组中所有的值
Arrays.fill(int[] a,int fromIndex,int toIndex,int value); fromIndex:需要被填充元素的第一个值(包括),toIndex:需要被填充的最后一个值(不包括)
5、对数组进行排序,Arrays.sort()方法:
通过Arrays类的静态ourt()方法可以对数组进行升序排序,java中的排序算法是根据字典编排顺序排序的,因此数字排在字母前面,大写字母排在小写字母前面
6、复制数组,copyOf()方法和copyOfRange()方法:
copyOf(arr,int newlength) --> 复制数组到指定长度,arr:要被复制的数组,newlength:复制后数组的新长度
copyOfRange(arr,int fromIndex,int toIndex) --> 将指定的数组长度复制到另一个数组中,fromIndex:指定要开始复制数组的索引位置,toIndex(包括):要复制范围的最后索引位置(不包括)
7、数组查询,Arrays.binarySearch()方法:
binarySearch(Object[],Object[] key) --> key:要搜索的值,若key在数组中,则返回值在数组中的位置,否则返回-1,或"-"(插入点)
如果想要搜寻插入点,则必须在搜索前对数组进行sort()排序,例如结果返回-2,则在索引为2的位置插入值是最适合的
binarySrarch(Object[],int formIndex,int toIndex,Object key) --> 在指定范围内查找元素,fromIndex:指定范围的开始处索引(包含),toIndex:指定范围的结束处索引(不包含),
8、数组排序算法:
(1)、冒泡排序
算法其实是使用双层循环进行排序,比较相邻两个元素大小,将大的元素向后冒泡,用临时变量实现元素之间的交换
int[] array = {53,4,23,1,3,15};
BubbleSort sorter = new BubbleSort();
sorter.sort(array);
(2)、直接排排序
本算法是利用双层循环,定义一个索引变量,从二层循环中找到最大的一个数组元素,然后将这个数组元素与最后一位数组元素进行交换,以此类排出最终结果
int[] array = {53,4,23,1,3,15};
SelectSort sorter = new SelectSort();
sorter.sort(array);
(3)、反转排序
反转排序就是将原有数组的内容重新排序,使用单层for循环可以实现,限制为i<arr.length/2,循环内首尾元素对调就可以实现
int[] array = {10,20,30,40,50,60};
SelectSort sorter = new SelectSort();
sorter.sort(array);

浙公网安备 33010602011771号