Java基础语法<六> 数组 Arrays

时间:2020-12-24 19:35:06
笔记整理 来源于《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)  
staitc type copyOf(type[] a,int start,int end)  
返回与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)  
采用二分搜索算法查找值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实际上没有多维数组,多维数组被解释为 数组的数组。