数组
一.数组的概念
java中数组的概念指的是在JVM中开辟出一块连续的内存区域,这些连续的区域组合起来叫做数组.并不是说JVM中有一种存储叫做数组.例如int[2],值得是JVM开辟出2个连续的int类型大小的区域.
数组的特点:
1.连续的内存空间.
2.数组的长度在声明的时候就必须指定.
3.数组内的元素类型相同.
4.数组内的元素可以是任意类型的.
5.数组的起始下标为0,意思数组的长度为arr.length-1;
6.内存空间连续分配,顺序遍历性能高,但新增、删除数据繁琐,性能低
7.数组是引用类型,方法参数中传递的数组,则在方法中对数组做修改,会影响源数组的值.
public static void main(String[] args) {
MyExeception[] me = new MyExeception[2];
me[1] = new MyExeception("haha", 2);
int[] arr = new int[2];
String[] arr2 = new String[2];
}
二.一维数组
创建数组的三种方式:
注意:必须声明数组的时候指定数组的长度,或者直接列出数组的元素.
MyExeception[] me = new MyExeception[2];//第一种,也是推荐使用
me[1] = new MyExeception("haha", 2);
int arr3[] = new int[2];//第二种
int arr2[] = new int[] {1,2,3};//第三种,不能指定长度了
int[] arr4 = {1,2};//第四种,推荐使用
三.二维数组
创建数组的三种方式:
注意:必须声明数组的时候指定数组的长度,或者直接列出数组的元素.
String[][] str1 = new String[2][];//第一种,推荐
String[][] str2 = new String[2][3];
String[][] str3 = new String[][3];//错误的,必须指定第一个参数
String[] str4[] = new String[2][];//第二种
String str5[][] = new String[2][];//第三种
String[][] str6 = {{"haha","wo"},{"ai"}};//第四种
四.数组的遍历
数组的遍历:
第一种:普通for循环
第二种:加强for循环
int arr2[] = new int[] {1,2,3};//第三种,不能指定长度了
for(int i = 0;i < arr2.length;i ++) {//第一种,普通for循环
System.out.println(arr2[i]);
}
for(int i: arr2) { //第二种,加强for循环
System.out.println(i);
}
五.数组的缺点.
1.必须指定起始的长度,也是设计时为了指定JVM划分多少的内存.
2.数组元素类型必须相同.
3.如果JVM全是内存碎片,可能不会有一整块大的内存供你使用,使得数组创建不成功!
针对以上的缺点,故java提供了另外的一种数据存储结构,集合.其实集合也是在数组的基础之上发展设计而来的,通过一系列的方法优化设计的.