Java基础语法<六> 数组 Arrays
笔记整理 来源于《Java核心技术卷 I 》 《Java编程思想》
允许数组长度为0
new element[0] 数组长度为0与null不同
1. 数组拷贝
允许将一个数组变量拷贝给另一个数组变量。这时,两个变量将引用同一个数组:
int[] ele1 = ele2;
ele1[5] = 12; //now ele2[5] is also 12
如果希望将一个数组的所有值拷贝到一个新的数组中去,就要使用Arrays类的copyTo方法:
int[] copiedele = Arrays.copyOf(ele1,ele1.length);
第2个参数为数组的长度,通常用来增加数组的大小。
2. 命令行参数
每个java应用程序都有一个带String arg[]参数的main方法。这个参数表明main方法将接受一个字符串数组,也就是命令行参数。
3. API
java.util.Arrays 1.2
static String toString(type[] a) 5.0
返回包含a中数据元素的字符串,这些数据元素被放在括号内,并用逗号分隔。
参数:a 类型为int、long、short、byte、boolean、float或double的数组
static type copyOf(type[] a,int length) 6
staitc type copyOf(type[] a,int start,int end) 6
返回与a类型相同的一个数组,其长度为length或者start-end数组元素为a的值
参数:a 类型为int、long、short、byte、boolean、float或double的数组
start 起始下标 包含这个值
end 终止下标 不包含这个值,这个值可能大于a.length,在这种情况下,结果为0或false。
length 拷贝的数据元素长度.如果length值大于a.length,结果为0或false;否则,数组中只有前面length个数据元素的拷贝值
static void sort(type[] a)
采用优化的快速排序算法对数组进行排序
参数:a 类型为int、long、short、byte、boolean、float或double的数组
static int binarySearch(type[] a,type v)
static int binarySearch(type[] a,int start,int end,type v) 6
采用二分搜索算法查找值v。如果查找成功,则返回相应的下标值,否则,返回一个负数值r。-r-l是为保持a为有序v应插入的位置。
参数: a 类型为int、long、short、byte、boolean、float或double的数组
start 起始下标(包含这个值)
end 终止下标(不包含这个值)
v 同a的数据元素类型相同的值
static void fill(type[] a type v)
将数组的所有数据元素值设置为v
参数:a 类型为int、long、short、byte、boolean、float或double的数组
v 同a的数据元素类型相同的值
static boolean equals(type[] a type[] b)
如果两个数组大小相同,并且下标相同的元素都对应相等,返回true
参数 a,b类型为int、long、short、byte、boolean、float或double的数组
4. 多维数组
foreach 需要两个嵌套的循环
快速打印
System.out.println(Arrays.deepToString(a));
5. 不规则数组
Java实际上没有多维数组,多维数组被解释为 数组的数组。