Java数组(三)
目录 |
数组特点 |
数组申明 |
数组常见算法 |
Arrays工具类 |
常见异常 |
数组特点
- 数组是有序排列的
- 数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型
- 创建数组对象会在内存中开辟一整块连续的空间
- 数组的长度一旦确定,就不能修改。
数组申明
申明方式:
//1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行 int[] ids;//声明 ids = new int[]{1001,1002,1003,1004}; //动态初始化:数组的初始化和数组元素的赋值操作分开进行 String[] names = new String[5]; int[] arr = {1,2,3,4,5};//类型推断
默认初始化值:
- 数组元素是整型:0
- 数组元素是浮点型:0.0
- 数组元素是char型:0或'\u0000',而非'0'
- 数组元素是boolean型:false
- 数组元素是引用数据类型:null
数组常见算法
数组反转
//方法一: for(int i = 0;i < arr.length / 2;i++){ String temp = arr[i]; arr[i] = arr[arr.length - i -1]; arr[arr.length - i -1] = temp; } //方法二: for(int i = 0,j = arr.length - 1;i < j;i++,j--){ String temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }
冒泡排序
for(int i = 0;i < arr.length - 1;i++){ for(int j = 0;j < arr.length - 1 - i;j++){ if(arr[j] > arr[j + 1]){ int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } }}
快速排序
if(low>high){
return;
}
i=low;
j=high;
//temp就是基准位
temp = arr[low];
while (i<j) {
//先看右边,依次往左递减
while (temp<=arr[j]&&i<j) {
j--; }
//再看左边,依次往右递增
while (temp>=arr[i]&&i<j) {
i++; }
//如果满足条件则交换
if (i<j) {
t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
}
//最后将基准为与i和j相等位置的数字交换
arr[low] = arr[i];
arr[i] = temp;
//递归调用左半数组
quickSort(arr, low, j-1);
//递归调用右半数组
quickSort(arr, j+1, high);
常用Arrays工具类
- boolean equals(int[] a,int[] b):判断两个数组是否相等。
- String toString(int[] a):输出数组信息。
- void fill(int[] a,int val):将指定值填充到数组之中。
- void sort(int[] a):对数组进行排序。