Java学习–数组
java的数组基本上和C++的一样,这里只记录一些我个人觉得比较新鲜或者在C++我用的比较少的点。
创建数组:
int[] smallPrimes = {2, 3, 5, 7, 11, 13 };//不需要new分配空间
String[] authors = {
"Zhang 3rd",
"Li 4th",
"Wang 5th",
//add more names here and put a comma after each name
}
//最后一个值后面可以有一个逗号,可以不断为数组增加值
smallPrimes = new int[] {17, 19, 23, 29, 31, 37};
//匿名数组,等价于下面的形式
int[] anonymous = {17, 19, 23, 29, 31, 37};
smallPrimes = anonymous;
遍历数组元素:
for(int element: a)
System.out.println(element);
for(int i=0; i< a.length; i++){
System.out.println(a[i]);
}
System.out.println(Arrays.toString(a));
//得到输出值"[2,3,5,7,11,13]"
数组拷贝:
Java中允许将一个数组变量拷贝到另一个数组变量,这是,两个变量将引用同一个数组:
int[] luckyNumbers = smallPrimes;
luckyNumbers[5] = 12;
//smallPrimes[5] = 12
如果希望实现值的拷贝:
int[] copiedLuckyNumbers = Arrays.copyOf(luckyNumbers, luckyNumbers.length);
//第二个参数是新数组的长度,可以用来增加数组大小
luckyNumbers = Arrays.copyOf(luckyNumbers, 2 * luckyNumbers.length);
其他
static xxx[] copyOfRange(xxx[] a, int start, int end)
static void sort(xxx[] a)
static int binarySearch(xxx[] a, xxx v)
static int binarySearch(xxx[] a, int start, int end, xxx v)
static void fill(xxx[] a, xxx v)//所有元素设置为v
static boolean equals(xxx[] a, xxx[] b)//内容完全相同返回true
多维数组
double[][] a = new double[x][y];
不规则数组
int[][] odds = new int[NMAX+1][];
for(int n=0; n<= NMAX; n++){
odds[n] = new int[n + 1];
}