小白学Java03:数组
数组
在java语言中,数组是一种复合数据类型(引用数据类型)。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。
一维数组
定义方式:
1:type arrayName[];
2:type[] arrayName;(推荐)
静态初始化:
type[] nameArray = {1,2,3,4};
动态初始化:
•写法一:int[] ary1=new int[2];//{0,0}
ary1[0]=123; ary1[1]=456; //通过整型下标访问元素
•写法二:int[] arr = new int[]{1,2,3};
数组的下标和长度:
arrayName[index] //array数组中的index元素
数组下标从0开始,最大长度为数组长度减1
Java会进行数组下标越界检查,
如果下标越界,则报数组下标越界异常
使用数组变量名.length来获取数组元素个数
如:
arr.length
小知识
- 数组动态初始化的默认值
•整型数组所有元素为0;
•浮点型数组所有元素为0.0;
•布尔型数组所有元素为false;
•字符型默认初始值为空字符,\u0000 ‘ ’
•类类型数组所有元素为null;
- 数组是一个对象,通过变量名指向堆中的引用
多维数组
•type arrayName[ ][ ];
•type[ ][ ] arrayName;
•type[] arrayName[];
int intArray[ ][ ]={{1,2},{2,3},{3,4}};
一、直接为每一维分配空间;
int[][] arr=new int[2][3];//{{0,0,0},{0,0,0};
二、只创建了二维数组对象(每一个一维数组是空的)
int[][] arr = new int[2][];//{null,null}
arr[0] = new int[2];
arr[1] = new int[]{11,22,33};
三、带指定值的动态初始化
int[][] arr = new int[][]{{11,22},{33,44}};
小知识
数组的长度一旦被确定,便不可以增加或减小,对于数组的扩容和缩容操作都是新建一个数组,然后把旧数组的内容放到新数组中,然后把引用指向旧数组的数组变量名称
数组的属性
int[] i = new int[10];
int length = i.length; //10
数组的常用方法
int[] i = new int[] {1,2,3,4,5};
int[] clone = i.clone();
System.out.println(Arrays.toString(i));
System.out.println(Arrays.toString(clone));
int[] i = new int[] { 1, 2, 3, 4, 5 };
System.out.println(i.toString());// [I@7f690630
System.out.println(Arrays.toString(i));// [1, 2, 3, 4, 5]
int[] i = new int[] { 1, 2, 3, 4, 5 };
System.out.println(Arrays.toString(i));//[1, 2, 3, 4, 5]
int[] copyOf = Arrays.copyOf(i, 10);
System.out.println(Arrays.toString(copyOf));//[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]
int[] copyOf2 = Arrays.copyOf(i, 3);
System.out.println(Arrays.toString(copyOf2));//[1, 2, 3]
int[] i = new int[] { 1, 23, 13, 954, 51 };
Arrays.sort(i);
System.out.println(Arrays.toString(i));//[1, 13, 23, 51, 954]