1.可以使用两种形式声明数组:
int [] a;
或
int a [];
2.初始化:
创建一个数字数组时,所有元素都初始化为0.boolean数组的元素会初始化为假。对象数组的元素则初始化为一个特殊值空。
3.对于每个循环:
例如:for(int element:a)
的System.out.println(元件);
有个更简单的方式打印数组,即使用数组类的的toString方法
例如:的System.out.println(Arrays.toString的(a));
4.匿名数组:
new int [] {1,2,3,4,5}
在Java的中,允许数组长度为0
5.数组拷贝:
两个变量将引用同一个数组:
例如:int [] l = s;
如果希望将一个数组的所有值拷贝到一个新的数组中去,就要使用数组类的copyOf方法
例如:int c = Arrays.copyOf(l , l.length);
也可以增加数组的大小
例如:l = Arrays.copyOf(l , 2*l.length);
Java数组与C++数组在堆栈上有很大不同:
例如:int[] a = new int[100]; //Java
不同于
int a[100]; //C++
而等同于
int* a = new int[100]; //C++
但是没有指针运算,即不能通过a加1得到数组的下一个元素
6.数组排序:
可以使用Arrays类中的sort方法,该方法了使用了优化了的快速排序算法
Math.random方法可以得到一个0到1之间(包含0、不包含1)的随机浮点数
7.java.util.Arrays 1.2:
static type copyOf(type[] a , int length)
static type copyOfRange(type[] a , int start , int end)
返回与a类型相同的一个数组,其长度为length或者end-start,数组元素为a的值
static int binarySearch(type[] a , type v)
static int binarySearch(type[] a , int start , int end , type v)
采用二分搜索算法查找值v。如果查找成功,则返回相应的下标值;否则,返回一个负数值r
static void fill(type[] a , type v)
将数组的所有数据元素设置为v
static boolean equals(type[] a , type[] b)
如果两个数组大小相同,并且下标相同的元素都对应相等,返回真
8.多维数组:
初始化:例如:double [] [] balances;
balances = new double [n] [n];
int [] [] m =
{
{} 16,12,1,13
{2,3,1,8}
};
想要快速打印一个二维数组的数据元素列表,可以调用:
System.out.printil(Arrays.deepToString的(a));
9.不规则数组:
Java的实际上没有多维数组,只有一维数组。多维数组被解释为“数组的数组”
double [] [] b = new double [10] [6]; // Java的
不同于
双b [10] [6]; // C ++
也不同于
双(* b)[6] =新双[10] [6]; // C ++
而是分配了一个包含10个指针的数组
双** b =新双* [10]; // C ++
然后,指针数组的每个元素被填充了一个包含6个数字的数组;
对于(I = 0; I <10;我++){
b [i] =新双[6];
}