JAVA中的数组知识整理(区别于C++)

对于学习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;
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46726346/article/details/107021701
今日推荐