数组在指定位置插入数据,形成新的数组
- 向数组的指定位置,添加元素
- 数组的特点:数组一旦创建、长度不可变!
int[] array = {12,32,43,5,6,2};
// 将 15 插入 array 数组的第三个位置
//获取原数组的长度
int len = array.length;
// 构建一个新的数组,用来存储添加元素后的数组
int[] newarray = new int[len + 1];
int pos = 2;
for (int i = 0; i < len; i++) {
if(i < pos){
newarray[i] = array[i];
}else{
// 已经从后移动了 几个元素
int relation = i - pos;
// 从数组的最后一个元素,开始,将数据拷贝到新数组的最后一个位置
newarray[len - relation] = array[len - 1 - relation];
//方式二
//newarray[i + 1] = array[i];
}
}
newarray[2] = 15;
System.out.println(Arrays.toString(newarray));
数组的拷贝(JDK自带方法)System.arraycopy()
System.arraycopy(src,srcPos,dest,destPos,length);
1. src:源 数据的来源
2. srcPos :从源数组中的 哪一个位置开始
3. dest:目的地 数据复制到哪里
4. destPos:从 目的地 数组中 哪一个位置 开始 拷贝
5. length:拷贝内容的长度
// 原数组
int[] array = {23,34,2,4,6,3};
// 新数组 比 原数组长度大 1
int[] newarray = new int[array.length + 1];
//System.arraycopy(array,2,newarray,0,3);
//将原数组中的内容完全拷贝到新数组
System.arraycopy(array,0,newarray,0,array.length);
//输出数组内容
System.out.println(Arrays.toString(newarray));
在一个数组中指定位置插入数据
// 在 数组的第三个位置插入 15
int pos = 2;
// newarray.length - 2 获取新数组中有效数值的位置
for(int i = newarray.length - 2; i >= pos ; i--){
// 将数组中前一个值 赋值给后一个值
newarray[i + 1] = newarray[i];
}
// 将数据插入到 指定的位置
newarray[pos] = 15;
升序排序
- Arrays.sort(array) 升序排序,数据量小速度快
- Arrays.parallelSort(array) 升序排序,数据量大速度快
int[] array = {1,2,5,7,6,3,4};
// 升序排序,数据量小速度块
Arrays.sort(array);
System.out.println(Arrays.toString(array));
int[] array2 = {1,2,5,7,6,3,4};
// 升序排序,数据量大速度块
Arrays.parallelSort(array2);
System.out.println(Arrays.toString(array2));