对于学习java呢,有了C语言的基础可能会更好的掌握;
对于前面的数据类型还有表达式,语句和C基本上都是大同小异;
本质上没有什么差别;
到了数组这里,差别才开始显现出来;
一、一维数组
1.定义
首先数组的使用之前一定要定义(和C语言一样);
java中如何定义一个数组呢;
int array[];
记住,这里区别于C语言,java中的数组定义不许给数组里面添加数字;
就像这样;
int array[5];//错误
在java中这样定义是会报错的;
另外要注意的是,java中得定义也可以这样写;
int[] array;
方括号放在了前面,两种用法自己掌握;
2.初始化;
定义好了数组之后我们就可以进行初始化了;
java中给数组初始化有两种;
第一种是静态初始化;
这里也要区别于C;
int array[]= {1,2,3,4};
java中的静态初始化,一定是在定义数组的同时对数组元素进行初始化;
像这样写的话;
int array[];
array[]= {1,2,3,4};//错误
java还是会报错;
第二种是动态初始化;
上面的了解了后,会有这样一个问题,如果我想创建一个长度为5的数组;
我不关心里面的内容,只是要一个长度为5的数组;
这个时候就需要动态初始化数组;
int array[]=new int[5];
然后可以再给数组元素赋值;
public class Array {
int array[]=new int[5];
Array() {
for(int i=0;i<5;i++) {
array[0]=i;
}
}
}
这里我写在了构造函数里面,只是举一下例子;
3.复合类型数组
对于复合类型的数组,使用运算符new只是为数组本身分配空间,并没有对数组的元素进行初始化。所以对复合类型的数组,需要进行两步进行空间分配;
我以一个Point类来举例子;
Point points[]=new Point[5];
for(int i=0;i<5;i++) {
points[i]=new Point();
}
首先是对points这个数组进行空间分配;
然后给每个数组元素进行空间分配;
4.length的用法;
length是用来获取数组长度的;
拿上面的array数组来举例;
Array a=new Array();
int x=a.array.length;
System.out.println(x);
输出的就是array的长度5;
5.在创建一个数组的时候,每个元素都会被初始化(0,或者null);
Array a=new Array();
System.out.println(a.array[0]);
如果没有初始化的话,这样输出就是0;
当然数组还有一些其他的函数,在这里就不一一举例了,对于一维数组的知识整理就这样!
二、二维数组;
java中没有真正的多维数组,但因为数组元素可以说明为任何类型,所以我们可以建立数组的数组(的数组…),由此得到多维数组;
这里我们只以二维数组举例;
定义和一位数组一样;
int array[][];
初始化也是和一位数组一样分为静态和动态两种;
静态:
int array[][]= {{1,2},{3,4}};
动态:
int array[][]= new int[2][2];
具体一点的可以自己尝试着写写;
在这里我们说一下length的用法;
举例子看;
public class Array {
int array[][]= new int[2][];
Array() {
array[0]=new int[2];
array[1]=new int[3];
}
}
我在Array类中,构建了一个二维数组;
并且第一行有两个元素;
第二行有三个元素;
我在测试函数了这么测试;
public class test {
public static void main(String[] args) {
Array a=new Array();
System.out.println(a.array.length);
System.out.println(a.array[0].length);
System.out.println(a.array[1].length);
}
}
正确的输出结果为2,2,3;
第一个输出代表这个二维数组的行数;
第二个输出代表第一行元素的列数;
第三行输出代表第二行元素的列数;
这就是对二维数组的用法简介;
综上所述,就是自己对数组这一节进行的知识总结;
OK,结束;
end;