标签:end 数据类型 二分查找 不同的 rom 表达 数据 默认 int()
int[] a;
short[][] as;
short s,aas[][]; //但通常将[][]放在变量之前
Object[] ao,aos;
Collection<?>[] u; //声明具体元素类型未知的数组
数组在创建之前,不能使用,数组的创建有两种,一种是直接使用创建表达式,指定数组的长度,另一个方式是直接对数组进行初始化。在数组创建后,能使用数组的final length变量访问数组的长度。
Exception ae[] = new Exception[3];
Object aao[][] = new Exception[2][3];
int[] factorial = { 1, 1, 2, 6, 24, 120, 720, 5040 };
char ac[] = { ‘n‘, ‘o‘, ‘t‘, ‘ ‘, ‘a‘, ‘ ‘,‘S‘, ‘t‘, ‘r‘, ‘i‘, ‘n‘, ‘g‘ };
String[] aas = { "array", "of", "String", };
ae.length //创建的数组能访问.length属性
int [] a={1,2,3}
a[0]=2;
a[2]=2;
for(int x:a){System.out.Println(x); } //2 2 2
如果数组的访问出界,会抛出ArrayIndexOutOfBoundsException。
ArrayStoreException,数组的创建类型和存储类型不一致引发的异常。
class Point { int x, y; }
class ColoredPoint extends Point { int color; }
class Test {
public static void main(String[] args) {
ColoredPoint[] cpa = new ColoredPoint[10];
Point[] pa = cpa;
System.out.println(pa[1] == null);
try {
pa[0] = new Point(); //实际声明类型是子类型引用
} catch (ArrayStoreException e) {
System.out.println(e);
}
}
}
//This program produces the output:
//true
//java.lang.ArrayStoreException: Point
数组的复制最常规的方法之一,当然就是直接使用for循环。
对于一维数组可以使用 clone()方法,次方法复制的数组是深拷贝
int[] a={1,2};
int[] b=a.clone();
System.out.println(a==b); //fasle
b[1]++;
System.out.println(b[1]); //3
System.out.println(a[1]); //2
System.arraycopy(src,srcPos,dest,destPos,length);
src:原数组
srcPos:从原数组的起始位置+
dest:目标数组
destPos:目标数组开始的的位置
length:要Copy的数组长度
注意以上的方法都是一维数组的复制方式,也只适用一维数组,其他维数组的复制方式是拆分成为一维数组在进行复制。
数组的拼接也可以借助数组的复制实现
常需要用到的方法
Arrays.copyOf() Arrays.copyOfRange([]origin,from,to) 这两个静态方法实现了全部的基本数据类型数组的复制,后者是数组的范围复制
Arrays.binarySearch([]array,key) Arrays.binarySearch([]array,from,to,key) 使用了二分查找算法实现数组内元素的查找和范围查询,这个方法实现了泛型T,借助比较器也能使用查询方法。
Arrays.compare([]a,[]b) 比较两个数组语序上是否相等,如果返回0,表面数组相等,返回1,代表数组a大
Arrays.equals([]a,[]b) Arrays.equals(a, b) == (Arrays.compare(a, b) == 0);Arrays.equals(a, b) 返回真,那么Arrays.hashCode(a) == Arrays.hashCode(b).
Arrays.fill([]a,key) 用key填充数组,也有范围填充重载
Arrays.sort([]a) 数组排序,也可以进行范围内的数组排序
Arrays.mismatch([]a,[]b) 比较两个数组语序上的差异,如果数组相等返回-1,返回两个数组开始不同的第一个索引。索引的范围是0到最小数组的长度,这个方法可以计算两个数组的相同前缀,前缀长度就是返回值
标签:end 数据类型 二分查找 不同的 rom 表达 数据 默认 int()
原文地址:https://www.cnblogs.com/lin7155/p/14851363.html