1.定义:数组是用来存储数据的集合,--》是一个存储具有相同类型的变量的集合
声明数组变量:元素类型[ ] 数组引用变量;
声明一个数组变量时,并不在内存中给数组分配任何空间。只是创建一个对数组的引用的存储位置。如果变量不包含对数组的引用,那么这个变量的值为null。除非数组已经被创建,否则不能给它分配任何元素。
eg:double [ ] myList = new double[10];
数组大小:myList.length
2.处理数组
处理数组时,经常会用到for循环,原因有二:
1)数组中所有元素都是同一类型的,可以使用循环以同样的方式反复处理这些元素。
2)由于数组的大小是已知的,所以很自然就使用for循环。
对于char型的数组,可以使用一条打印语句打印。
for-each循环:(for each loop):不使用下标变量就可以顺序地遍历整个数组。
3.数组的复制。
在java中,可以使用赋值语句复制基本数据类型的变量,但不能复制数组。将一个数组变量赋值给另外一个数组变量,实际上是将一个数组的引用复制给另一个变量,使两个变量都指向相同的内存单元。
- 复制数组有三种方法:
使用循环语句逐个复制数组的元素。
使用system类中的静态方法arraycopy。
使用clone方法复制数组。
arraycope方法并没有给目标数组分配内存空间。复制前必须创建目标数组以及给他分配内存空间。复制完成后,sourceArray和targetArray具有相同的内容,但占有独立的内存空间。
- 对于基本数据类型参数,传递的是实参的值。
对于数组类型参数,参数值是数组的引用,给方法传递的是这个引用。从语义上讲,最好的描述就是参数传递的共享信息,即方法中的数组和传递的数组是一样的,所以,如果改变方法中的数组,将会看到方法外的数组也变化了。
JVM将数组存放在一个称为堆(heap)的内存区域中,堆用于动态内存分配,在堆中内存块可以按随意的顺序分配和释放。
4.可变长参数列表
任何常规参数必须在它之前。java将可变长参数当成数组。可以将一个数组或可变的参数个数传递给可变长参数。当用可变的参数个数调用方法时,java会自动创建一个数组并把参数传给它。
5.线性查找法适用于在小数组或没有排序的数组中查找,但是对大数组而言效率不高。二分查找法的效率较高,但它要求数组已经排好序。
6.Array类
适用sort方法对整个数组或部分数组进行排序。
二分查找法在数组中查找关键字(BinarySearch)
equals方法检测两个数组是否相等。
可以使用fill方法填充整个数组或部分数组。