数组是最常见数据结构类型之一了,使用简单方便,相信所有会编程的朋友都不会陌生,甚至理解会比我深 [手动狗头]。这篇文章以java语言为例,也是做一个数组的简单介绍跟归纳。
数组可以理解为一种数据类型的集合体吧,一种容器,所以使用数组时必须要先声明这是一个什么类型的数组。如我要声明一个int 类型的数组:
int[] a = new int[]{1, 2, 3}; // int[] b = {1, 2, 3, 4, 5}; // int[] c = new int[5]; c[0] = 4;
上面列举了3种声明形式(其实是两种,第一种跟第二种是一样的)。第一种是静态声明形式,第三种是动态声明形式。
数组是存储一种相同类型的数据,那肯定会要把它里面的数据一个一个取出来。这就是数组的遍历了,举例一种遍历方式
for循环遍历:
for(int i=0; i< b.length; i++){ Log.d("AAAA",""+b[i]); }
实际上所有的循环语句都可以用来做数组的遍历,像 while,do ... while 等。还有一个就是增强for了,跟for 是一样的写法不一样。
使用数组的使用一定要注意先初始化,也就是要 new 一下,不然到后面使用时会出现空指针异常。因为我们如果只是声明出这个数组的时候,只在栈内存里定义出来,而没有在堆内存里定义。在访问栈内存中数组的指向堆内存的数组地址为空时,就会抛出空指针异常。
特点:
1.查改容易,增删困难;
2.容量大小固定,灵活度低;
数组是一种线性的数据结构,拥有索引值并且是有序,所以它在寻址也就是查询这块效率更加高效,同时也因为连续性导致做增删操作效率较低;同时因为在实例化数组的时候就要分配空间,导致数组不能适应数据动态增加或减少的情况,导致内存空间浪费。
二维数组即一维数组的存储元素又是一个数组,它的存储结构可以参照表格,有行,列之分。要定位出一个二维数组中的一个元素需要知道行,列两个位置。