数组插入、拷贝、升序排序

数组在指定位置插入数据,形成新的数组

  • 向数组的指定位置,添加元素
  • 数组的特点:数组一旦创建、长度不可变!
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));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值