java编程入门8 数组
数组概述
1.声明一维数组
1)数组元素类型 数组名字[];
2)数组元素类型 [] 数组名字;
2.为数组分配内存空间
1)数组名字 = new 数组元素的类型[数组元素的个数];
注:使用new关键字为数组分配内存时,整型数组中各个元素的初始值都为0
3.声明的同时为数组分配空间
1)数组元素的类型 [] 数组名 = new 数组元素的类型[数组元素的个数];
2)数组元素的类型 数组名 []= new 数组元素的类型[数组元素的个数];
4.初始化一维数组
1)数组元素的类型 数组名字[] =new 数组元素的类型[]{表达式列表};
2)数组元素的类型 数组名字[] ={表达式列表};
数组的基本操作
1.填充数组元素
使用Arrays类的静态方法fill()来对数组中的元素进行填充
1)fill(int[] a,int value) //以int型数组为例
2)fill(int []a,int fromIndex,int toIndex,int value)
该方法将指定的值分配给从索引fromIndex开始到toIndex(不包括)这一指定范围中的每个元素、
2.对数组进行排序
使用Arrays类的静态方法sort()来对数组中的元素进行排序
1)通过sort()可以实现对数组的排序
注:java中的String类型数组的排序算法是根据字典编排顺序排序的,数字<大写字母<小写字母(ASCII)
String [] arr =new String[] {"1abcd","aabcd","Aabcd"}; Arrays.sort(arr); for(int i=0;i<arr.length;i++) { System.out.println(arr[i]); }
3.复制数组
Arrays类的copyOf()方法与copyOfRange()方法可以实现对数组的复制
1)copyOf(arr,int new length)
复制数组至指定长度,如果新数组的长度大于数组arr的长度,则用0填充(根据复制数组的类型来决定填充的值,整型数组用0填充,char型数组用null填充)
String [] arr =new String[] {"1abcd","aabcd","Aabcd"}; Arrays.sort(arr); for(int i=0;i<arr.length;i++) { System.out.println(arr[i]); }
2)copyOfRange(arr,int fromIndex,int toIndex)
指定数组的指定长度复制到一个新数组中,从fromIndex到toIndex(不包括),fromIndex必须在0~整个数组的长度之间,toIndex可以大于数组arr的长度,
int arr[] =new int[] {23,42,12}; int newarr[]= Arrays.copyOfRange(arr,0,5); for(int i=0;i<newarr.length;i++) { System.out.println(newarr[i]); }
4.数组查询
Arrays类的binarySearch()方法,可使用二分搜索法来搜索指定数组,已获得指定对象,返回值为索引位置。
如果key包含在数组中,则返回搜索值的索引;否则返回"-"(插入点),插入点是搜索键要插入数组的那个点,即第一个大于此键的元素索引(从1开始计数)。
1)binarySearch(Object[] a,Object key)
注:必须在进行此调用前对数组进行排序,如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法去保证找到的是哪一个。
2)binarySearch(Object[],int fromIndex,int toIndex,Object key)
该方法在指定的范围内(fromIndex,toIndex-1)检索某一个元素
int arr[] =new int[] {1,3,5,7,9,11}; int index=Arrays.binarySearch(arr, 4); System.out.println(index);
2018-12-05