数组在java语言中属于第一级对象。数组中的每个元素通过数组名加下标进行引用(访问)。当建立一个数组后,就不能轻易改变其大小。对于数组的访问不能越界访问。
1、一维数组
数组声明
类型名称 数组名[]; 或者 数据类型 [] 数组名; int Array[]; or int[] Array;
为数组元素分配内存单元
数组名=new 类型[类型长度] Array=new int[5];
数组初始化
在说明数组的同时进行初始化 int Array[]={2,3,4};
在声明之后再创建数组,然后为每个元素赋值
注意
Java系统能自动检查数组下标越界的情况 Java中的数组实际上是一种隐含的“数组类” Java中任何数组都有公有变量length。
2、二维数组
数组声明
数组类型 数组名 [][];或者 数组类型[] 数组名 []; int Array[][]; int[] Array[];
为元素分配内存空间
直接为每一维分配空间:int a=new int[3][3];
从最高维开始,分别为每一维分配空间 int a[][]=new int[3][]; a[0]=new int [3]; a[1]=new int [5]; a[2]=new int [2];
数组是第一级对象
数组可以分为对象数组和基本类型数组,对象数组保存的是对象的引用,而基本类型数组直接保存基本类型的数值。
新生成一个对象数组时,其中所有的引用被自动初始化为null;所以在程序中检查其中的引用是否为null即可知道数组的某个位置是否存在对象;同样基本类型的数组如果是数值型的,就被自动初始化为0,如果是字符型(char)的,就被自动初始化为(char)O;如果是布尔型(boolean),就被自动初始化为false。
在Java中,你写的方法可以返回一个数组,而无需担心要为数组负责——只要你需要它,它就会一直存在,当你使用完后,垃圾回收器会清理掉它。
sort():用于对数组的排序。
binarySearch():用于在已经排序的数组中查找元素。
toString():产生数组的String表示。
hashCode():产生数组的散列码
这些方法对各种基本数据类型和Object类而重载过
另外Java标准类库提供的static方法System.arraycopy(),用它复制数组比用for循环复制要快很多,System.arraycopy()针对所有的类型都做过重载。
arraycopy()需要的参数有:源数组,表示从源数组中的什么位置开始复制的偏移量,表示从目标数组的什么位置开始复制的偏移量,以及需要复制的元素个数。
需要注意的是基本数据类型和对象数组都可以复制,但是在复制对象数组的时候,只是复制了对象的引用——而不是对象本身的拷贝,也就是浅复制。 System.arraycopy()不会执行自动包装和自动拆包,两个数组必须具有相同的确切类型。
//System.arraycopy()使用示例import java.util.*;public class TestForJava {public static void main(String[] atgs){ int []i=new int[7]; int []j=new int[10]; Arrays.fill(i, 22); Arrays.fill(j, 33); System.out.println("i="+Arrays.toString(i)); System.out.println("j="+Arrays.toString(j)); System.arraycopy(i, 0, j, 0, i.length); System.out.println("j="+Arrays.toString(j)); }}运行结果:i=[22, 22, 22, 22, 22, 22, 22]j=[33, 33, 33, 33, 33, 33, 33, 33, 33, 33]j=[22, 22, 22, 22, 22, 22, 22, 33, 33, 33]新闻热点
疑难解答