目录
关于数组
一维数组必须确定数组长度
二维数组可以看做多个一维数组,必须确定有几个一维数组,可以不指定每个一维数组的元素个数
int[] a = new int[5];
//一维
int[][] b = new int[5][];
//二维
数组变量是管理者,数组之间的比较是比较是否管理同一个数组
数组的复制需要遍历,直接赋值是两个数组变量共同管理
int[] a = new int[5];
int[] b = a;
//a和b共同管理同一个数组
while循环
用while循环求平均数,不要一直用for循环,作为拓展
int e1 = 0;//和
int e2 = 0;//累加
int e3 = x.nextInt();//输入数
while(e3 !=-1) {
e2++;
e1 +=e3;
e3 = x.nextInt();
}
System.out.println(e1/e2);
for-each循环
用于遍历数组、集合,是对循环的复制,不可以修改数组,可以读出元素的值
对于容器类可用,可改变值,000
int[] f1 = {5,2,7};
for(int i:f1) {
//代码块
}
对象类型数组可以用for-each循环改变值
因为for(int k : a){ }是指对于int类型的数组a中的每一个值,交给int类型变量k
for(Value v : a){ }是指对于Value类型的数组a中的每一个Value对象,交给Value对象类型变量v,Value类型的变量是管理者,所以变量v和数组中的每一个对象变量是共同管理的关系。
如下代码,是for-each循环改变值
Value[] a = new Value[10];
for(int i = 0;i<a.length ;i++) {
a[i] = new Value();
a[i].set(i);
}
for (Value v : a) {
System.out.print(v+" ");
v.set(0);
}
//0 1 2 3 4 5 6 7 8 9
for (Value v : a) {
System.out.print(v+" ");
}
//0 0 0 0 0 0 0 0 0 0
另
关于length的用法,数组中的length用于求数组的元素个数,length()用于求String字符串对象的长度。
关于程序的严谨性,Java编译器并不会查看数组的下标是否有效,但是运行时程序会终止
int[] a = new int[-4];
//以上,在Java编译时并不会报错
a = x.nextInt();
int[] b = new int [a];
if (a>0){ //if语句确保数组成立
//代码块...
}
#对象可以创建数组吗
可