参考:
http://www.w3cschool.cc/java/java-array.html
http://www.blogjava.net/flysky19/articles/92763.html
一,基础
数组对于每一门编辑应语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。
Java语言中提供的数组是用来存储固定大小的同类型元素。
1,变量声明
double[] myList; // 首选的方法 或 double myList[]; // 效果相同,但不是首选方法2,创建数组
Java语言使用new操作符来创建数组,语法如下:
arrayRefVar = new dataType[arraySize];
上面的语法语句做了两件事:
- 一、使用dataType[arraySize]创建了一个数组。
- 二、把新创建的数组的引用赋值给变量 arrayRefVar。
数组变量的声明,和创建数组可以用一条语句完成,如下所示:
dataType[] arrayRefVar = new dataType[arraySize];
另外,你还可以使用如下的方式创建数组。
dataType[] arrayRefVar = {value0, value1, ..., valuek};
或者
int[] arr = new int[]{1,3,5};
数组的元素是通过索引访问的。数组索引从0开始,所以索引值从0到arrayRefVar.length-1。
3,数组处理
下面的语句首先声明了一个数组变量myList,接着创建了一个包含10个double类型元素的数组,并且把它的引用赋值给myList变量。
double[] myList = new double[10];
下面的图片描绘了数组myList。这里myList数组里有10个double元素,它的下标从0到9。
通过下标访问数组,通过for循环,加强for循环遍历数组,数组也可以作为方法的参数,和返回值。
4,Arrays
java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:
- 给数组赋值:通过fill方法。
- 对数组排序:通过sort方法,按升序。
- 比较数组:通过equals方法比较数组中元素值是否相等。
- 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
java中数组是对象,
MyClass.class.getClass.getSuperClass() 是Object.class
java数组没有对应的类文件
System.out.println(new Object[3].getClass().getDeclaredConstructors().length) #数组没有构造方法
System.out.println(new Test[1].getClass()) 输出:class [Lcom.nqy.mycode.reflection.Test。java中普通类的class对象toString输出的是全限定名+类名,而数组数组输出的是[L+全限定名+类名,二维数组则是[[L+全限定名+类名。
float[][] fs = new float[3][5];
System.out.println(fs.length); //打印一维数组的长度,3
System.out.println(fs[2].length); //打印二维数组的长度,5
int[] is = (int[]) Array.newInstance(int.class,3); //创建一维数组
double[][] ds = (double[][]) Array.newInstance(double.class,2,3); //创建二维数组
System.out.println(Array.getLength(ds)); //输出二维数组第一唯的长度,2
System.out.println(Array.getLength(Array.get(ds,1))); //输出二维数组第二唯的长度,3