5.1 数组的定义
数组:用来储存多个相同数据类型的集合(容器)。
定义:
-
静态的定义方式:
数据类型 [ ] 数组名 = {数组值};
数据类型 数组名 [ ] = new 数据类型 [ ] { 数组值 }; -
动态的定义方式:
数据类型 [ ] 数组名 = new 数据类型 [ 长度 ]; -
定义完后会有默认值:
* byte、short、int、long 默认值: 0
* float、double 默认值: 0.0
* char 默认值:\0
* boolean 默认值:false
* 引用数据类型:null
int[] arr = { 17, 18, 19 };
int[] arr = new int[] { 17, 18, 19 };
int arr [] = new int[5];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
注意:
1,数组中的元素的类型必须都相同;
2,数组是什么数据类型?引用数据类型(地址);
3,元素在内存中的空间是连续的;
4,数组是通过下标访问的 数组名[下标];
5,数组的长度是通过length属性 数组名.length;
6,数组的长度是固定的,不能变;
5.2 数组的遍历
int[] arr = { 17, 18, 19 };
//遍历
for (int i = 0; i < Arr.length; i++) {
System.out.println(nameArr[i]);
}
//增强for循环 foreach,循环次数由集合的元素个数决定
for(int i : arr){
System.out.println(i);
}
//Arrays.toString()
System.out.println(Arrays.toString(arr));
5.3 数组的操作
- 删除数组中的元素
String [] nameArr = {"zhangsan","lisi","wangwu","zhaoliu","tianqi"};
for (int i = 3; i < nameArr.length; i++) {
nameArr[i-1] = nameArr[i];
}
nameArr[nameArr.length-1] = null ;
for (String name : nameArr) {
System.out.println(name);
}
运行结果:
- 新增数组中的元素
String [] nameArr = {"zhangsan","lisi","wangwu","zhaoliu",null,null};
for (int i=nameArr.length-1; i>=2 ; i--) {
if(nameArr[i] != null){
nameArr[i+1] = nameArr[i];
}
}
nameArr[2] = "seven";
for (String name : nameArr) {
System.out.println(name);
}
运行结果:
5.4 数组元素排序
- Arrays.sort()方法从小到大排序:
int [] nameArr = {6,4,2,3,12,15,16};
Arrays.sort(nameArr);
System.out.println(Arrays.toString(nameArr) );
运行结果:
- 冒泡排序:
int[] arr = { 9, 5, 8, 10, 4, 2, 0, 3, 1, 7, 6 };
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
int num;
if (arr[j] > arr[j + 1]) {
num = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = num;
}
}
}
System.out.println("从小到大排序:");
System.out.println(Arrays.toString(arr));
运行结果: