数组的基础知识
声明
例: double[] mylist
创建数组
array = new elementType[arraySize]
例: double[] mylist = new double[10]
当给数组分配空间时,必须制定数组能够存储的元素个数,从而指定数组大小,创建之后就不能再修改大小。可以用array.length得到数组的大小
初始化数组
elementType[] array = {value0,value1…valuek};
数组初始化中不适用new,初始化时必须将声明、创建、初始化放在一条语句中,分开会产生错误。
数组复制
list2 = list1; 并不能将list1引用的数组内容复制给list2,而只是将list1的引用值复制给了list2,这之后,list1和list2都指向同一个数组。
方法:
- 使用循环语句逐个复制数组元素
- 使用System类中的讲台方法arraycopy
arraycopy(sourceArray,srcPos,targetArray,tarPos,length);
srcPos,tarPos表示原数组和目标数组的起始位置,复制长度有length指定。复制开始前必须创建目标分组,并分配合适的内存空间
- 使用clone方法
数组传递给方法
- 对于基本数据类型,传递的是实参的值;
- 数组传给方法时,是数组的引用被传给方法。所以参数传递共享信息,方法中的数组如果改变,方法外的也改变。
数组在Java中是对象,存储在堆上,堆用于动态内存分配。
Array类
java.util.Arraays 类,包含一些使用的方法用于常见的数组操作。
sort或者paralleSort方法进行排序。
整个数组排序
java.util.Arraays.sort(numbers);
java.util.Arraays.paralleSort(numbers)
部分数组排序
java.util.Arraays.sort(char,1,3);
java.util.Arraays.paralleSort(char,1,3)
二分查找binarySearch
数组必须提前按照圣墟排列,如果数组不存在关键字,方法返回-
java.util.Arraays.binarySearch(list,key)
相等equals
java.util.Arraays.equals(lis1,list2)