数值的定义和使用
数组概述
- 数组是多个相同类型数据的组合
- 一维数组的声明方式:
int[] a;
- 方括号写到变量名的前面,也可以写到后面。
一维数组声明
- Java语言中声明数组时不能指定其长度(即数组中元素的个数),例如:
int[4] a; //非法
- 根本原因是因为:数组是引用类型
int[] a = new int[5];
- 这里的a只是一个引用,指向一个堆空间
数组初始化
静态初始化:
在定义数组的同时就为数组元素分配空间并赋值int[] a = {1, 2, 3};
int[] a = new int[]{1,2,3};
- 【注】最后可以多一个逗号,如{1,2,3,}
- 数组元素的默认初始化
- 数组是引用类型
- 数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化:数值类型初始化为0,引用类型为null
数组元素的引用
- 与C语言不同的是,Java中每个数组都有一个属性length指明它的长度,例如:
a.length
- 增强版的for()语句,是只读式的遍历
多维数组及示例
- 二维数组是数组的数组
int[][] t = new int[3][];
t[0] = new int[2];
t[1] = new int[4];
t[2] = new int[3];
- 多维数组的声明和初始化应按从高维到低维的顺序进行
int t1[][] = new int[][4]; // 非法,这与C++不同
public class Demo{
// 36 xuan 7
public static void main(String[] args){
int[] a = new int[7];
for (int i=0; i<a.length; ++i) {
one_num:
while (true) {
a[i] = (int) (Math.random()*36) + 1;
for (int j=0; j<i; ++j) {
if(a[i] == a[j])
continue one_num;
}
break;
}
}
for(int num : a)
System.out.print(num + " ");
}
}
-----------OUTPUT-----------
6 13 27 35 11 18 30