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

posted @ 2018-12-05 18:22  CCSU_CBG  阅读(146)  评论(0编辑  收藏  举报