数组
名称相同,下标不同,存储一组类型相同的数据。
声明数组
数组声明不能指定数组元素的个数。
数组是一种引用类型,即数组是对象,继承Object类的所有方法。
double []marks;
String works[];
创建数组
数组的大小可以在运行时指定。
数组一经创建大小不能改变。
marks = new double[5];
String []words = new String[3];
当用new运算符创建一个数组时,系统为数组元素分配了存储空间,并指定默认值。
下标越界时抛出ArrayIndexOutOfBoundsException异常。
属性方法
length
表示数组元素的个数。
System.out.println(marks.length);
增强的for循环
for(type identifier:expression){
//循环体
}
对expression(数组或集合)中的每个元素identifier执行一次循环体中的元素。
double sum=0;
for(double score:marks){
sum=sum+score;
}
arraycopy()
(复制数组,System类中)
不能用下列方法复制数组
int []source={10,20,30};
int []target=source;//这是引用赋值
静态初始化
double []marks = new double[]{79,84.5,63}
该方法不能指定数组大小。
Arrays类(java.util.Arrays)
数组的排序
sort()的排序是稳定的,即相等的元素在排序结果中不会改变顺序。
对象数组排序必须实现Comparable接口。
不能对布尔型数组排序。
public static void sort(int []a):对数组a按自然顺序排序。
public static void sort(int []a,int fromIndex,int toIndex):对数组a中的元素从起始下标fromIndex到终止下标toIndex之间的元素排序。
元素的查找
使用binarySearch()方法前,数组必须已经排序。
binarySearch()方法
根据key查找,找到,返回下标。找不到,返回-1。
public static int binarySearch(int[] a,int key);
public static int binarySearch(Object[] a,Object key);
元素的复制
copyOf()方法
public static boolean[] copyOf(boolean[] original ,int newLength);
public static double[] copyOf(double[] original ,int newLength);
原数组:original
新数组长度:newLength
copyOfRange()方法
public static boolean[] copyOfRange(boolean[] original ,int from,int to);
public static double[] copyOfRange(double[] original ,int from,int to);
原数组起始坐标:from
结束下标:to(不包含)
填充数组元素
fill()方法
public static void fill(int[] a,int val):用指定的val值填充数组a中的每个元素
public static void fill(int[] a,int fromIndex,int toIndex,int val):用指定的val值填充数组下标从fromIndex到toIndex中的每个元素
数组的比较
数组对象的equals()方法用来比较两个引用是否相同。
Arrays类的equals()
public static boolean equals(boolean[] a,boolean[] b):比较布尔型数组a和b是否相等
public static boolean equals(Object[] a,Object[] b):比较对象数组a和b是否相等
二维数组
二维数组的声明
elementType[][] arrayName;
elementType[] arrayName[];
elementType arrayName[][];
创建二维数组
int [][]matrix = new int[2][3];
也可先为第一维分配空间,然后再为第二维分配空间
int [][]matrix = new int[2][];
matrix[0] = new int[3];
matrix[0] = new int[3];
length方法
matrix,length得到matrix的大小,结果为2
matrix[0].length得到matrix[0]数组的大小,结果为3