- 数组是用来存储一组有序数据的容器
- 数组中存储数据的地址是连续的
- 数组中存储数据的类型是一致的
- 数组一旦创建、长度不可改变
创建数组第一种: 类型 变量名 [ ] ; (推荐写法)
第一种: 类型 变量名 [ ] ; (官方不推荐写法)
声明并创建数组第一种:变量名 = new 数组类型 [数组长度];
第二种:变量名 = new 数组类型 [ ]{val1,val2 ……};
1. 类型[] 变量名 = new 类型[长度] ;
2. 类型[] 变量 = new 类型[] {val, val1, val2 ....} ;
3. 类型[] 变量名 = {val, val2, val3 ...} ;
数组的基本操作
- 获取 数组中的指定位置的元素
数组变量[index] index 指的是 数组中的索引,从 0 开始
- 修改 数组中指定位置的元素
数组变量[index] = val ;
index的值的范围是 0 ~ 数组的长度 - 1
- 获取数组的长度
数组.length
- 遍历数组
for(int i= 0 ; i < array.length; i++) {
int x = array[i] ;
...
}
数组的排序
这里只介绍 冒泡排序 、插入排序、插入排序
- 冒泡排序
数组中两个相邻的数字进行比较、并交换,将大的数字沉到数组的尾部(升序排列)
int[] array = {12,0,45,1,3,45,2,0};
//外层循环控制比较 趟数
for(int i = 0; i < array.length; i++){
//内循环控制每趟比较的次数
for(int j = 0; j < array.length - i; j++){
//比较两个相邻的数 将较大的元素放在后面
if(array[j] > array[j + i]){
//交换两个数
array[j] = array[j] ^ array[j + 1];
array[j + 1] = array[j] ^ array[j + 1];
array[j] = array[j] ^ array[j + 1];
}
}
}
选择排序
数组中的一个元素和它后面所有的元素进行比较、并交换,将小的数字沉到数组的头部(升序排列)
int[] array = {12,0,45,1,3,45,2,0};
//外层循环控制比较 趟数
for(int i = 0; i < array.length-1; i++){
//假设第一个元素为最小元素
int minIndex = i;
//内循环控制每趟比较的次数
for(int j = i+1; j < array.length; j++){
if(array[minIndex] > array[j]){
minIndex = j;//交换最小下标
}
}
//循环结束 交换array[i] 与 array[minIndex]
int temp = array[minIndex];
array[minIndex] = array[i];
array[i] = temp;
}
Arrays 工具类的使用
- Arrays.toString(array) : 将指定的数组以字符串的形式表示,返回一个字符串
- Arrays.sort(array) : 对指定的数组 按照升序进行排序 (底层采用的快速排序)
- Arrays.sort(array, from, to) : 将数组的 from … to 之间的元素进行 排序
- Arrays.copyOf(array, newLen) : 将数组中从第1个元素到 newLen长度的内容拷贝到新数组中
- Arrays.copyOfRange(array, from , to) : 将数组的 from … to 之间的元素拷贝到新数组中
- Arrays.stream(array).max() : 求数组的最大值
- Arrays.stream(array).min() : 求数组的最小值
- Arrays.stream(array).sum() : 求数组的和
- Arrays.stream(array).average() : 求数组的平均值
不是 JDK 自带的, 是 apache 提供的,封装在了 commons-lang3.jar 中
jar 是 一个压缩文件、jar里面压缩的是 .class 字节码文件
Java中 jar的下载,推荐在 http://www.mvnrepository.com 网站中下载
在 idea的项目中,新建一个文件夹,推荐叫 lib
将下载好的 jar 拷贝到 lib 文件夹下
将 lib 文件夹作为 库 ( 选中 lib 右键 —> add as Libary )
-
add : 向数组尾部添加一个元素
-
addAll : 向数组尾部添加 多个元素
-
addFirst : 向数组头部添加一个元素
-
remove : 根据索引删除指定位置的元素
-
removeElement : 删除数组中指定的元素
-
removeAllOccurrences :删除数组中指定的元素的所有
-
clone() : 克隆一个数组,返回一个新数组,和原数据内容一样
-
toObject() : 将 基本类型数组 转成 包装类型数组
-
toPrimitive() : 将 包装类数组 转成 基本数据类型数组



