数组
存储同一类型值的集合。一旦创建数组就不能改变大小,如果需要经常扩展大小,应使用array list(数组列表)。
for each 循环
遍历数组值,不需要使用下标值。适用于需要处理所有元素的情况,否则还是使用传统for循环。
//for(variable:collection) statement
for(int element : a)
System.out.println(element);
//打印数组的另一种方法
System.out.println(Arrays.toString(a));
匿名数组
在不创建新变量的情况下重新初始化一个数组。
数组长度可以为0(与null不同)。
smallPrimes = new int[]{17,19,23,29,31,37};
//相当于
int[] a = {17,19,23,29,31,37};
smallPrimes = a;
数组拷贝
//直接等于时是两变量引用同一数组(定义指针而已)
int[] luckyNumbers = smallPrimes;
luckyNumbers[5] = 12;//现在smallPrimes[5]也是12
数组值都保存在堆内存中。
API
java.util.Arrays 1.2
• static String toString(type[] a) 5.0
返回包含a中数据元素的字符串,这些数据元素被放在括号内,并用逗号分隔。
• static type copyOf(type[] a, int length) 6
• static type copyOf(type[] a, int start, int end) 6
返回与a类型相同的一个数组。
start 起始下标(包含这个值)。
end 终止下标(不包含这个值)。
length 拷贝的数据元素长度。
• static void sort(type[] a)
采用优化的快速排序算法对数组进行排序。
• static int binarySearch(type[] a, type v)
• static int binarySearch(type[] a, int start, int end, type v) 6
采用二分搜索算法查找值v。如果查找成功,则返回相应的下标值;否则,返回一个负数值r。-r-1是为保持a有序v应插入的位置。
start 起始下标(包含这个值)。
end 终止下标(不包含这个值)。
v 同a的数据元素类型相同的值
• static void fill(type[] a, type v)
将数组的所有数据元素值设置为v
• static boolean equals(type[] a, type[] b)
如果两个数组大小相同,并且下标相同的元素都对应相等,返回true。
java.lang.System 1.1
• static void arraycopy(Object from, int fromIndex, Object to, int toIndex,
int count)
将第一个数组中的元素拷贝到第二个数组中。
from 任意类型的数组。
fromIndex 原始数组中待拷贝元素的起始下标。
to 与from同类型的数组。
toIndex 目标数组放置拷贝元素的起始下标。
count 拷贝的元素数量。
Java中都是一维数组,多维数组是数组的数组