数据结构:数组的基本使用

数组的介绍:

所谓数组,是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 这些无序排列的同类数据元素的集合称为数组。

数组是用于储存多个相同类型数据的集合

本文介绍:

本篇文章讲解了一般定长的数组如何进行添加新的元素和删除元素

数组的添加:

对于一般的数组在开始定义长度之后,数组的大小就不能被改变,如下代码就是定义了数组的长度:

int[] arr = new int[10];

如果要使数组的长度被改变,则需要重新开辟一个空间,并将该空间地址的引用赋给数组变量名arr,就可以达到使数组的长度得到变化。如下代码就将arr数组原长度10修改长度为20:

int[] arr = new int[10];
arr = new int[20];

上面代码中的new int[20]就是新开辟的空间。

下图就很好的解释了为一个定长数组添加一个新的元素的过程和原理

第一步:定义一个比原数组长度大一个的数组

第二步:将原数组中的所有元素都赋值给新的数组,然后要加入的新元素添加到新数组的最后面,最后将新数组的地址引用给原数组的变量名arr

添加新元素的代码:

public static void main(String[] args) {
	//解决数组的长度不可变的问题
	int[] arr = new int[] {1,2,3,4};
	System.out.println(Arrays.toString(arr));
	//要加入数据的目标元素
	int dst = 5;
	//创建一个新的数组,长度是原数组长度+1
	int[] newarr = new int[arr.length+1];
	//把原素组中的数据全部复制到新数组中
	for(int i = 0; i < newarr.length-1; i++) {
		newarr[i] = arr[i];
	}
	//把目标元素放入新数组的最后
	newarr[arr.length] = dst;
	//新数组替换原数组
	arr = newarr;
	System.out.println(Arrays.toString(arr));
}

添加的运行结果:

[1, 2, 3, 4]
[1, 2, 3, 4, 5]

数组的删除:

原理和数组的添加是一样的,只是过程是相反的,需要先找到要删除元素的下标,并创建一个比原数组小一个的新数组,将原数组比要删除元素下标小的元素全部按原来的顺序赋值给新的数组,跳过删除的下标的位置,并将原数组剩下的所有元素全部赋值给新的数组,这样就达到了数组的删除的效果。

第一步:找到要删除的元素,并定义一个比原数组小一个的新数组

第二步:在给新数组赋值的时候,跳过要删除的元素并将剩下的元素赋值给新的数组,最后将新数组地址的引用给原数组的变量名arr

删除元素的代码:

//如何删除数组中的元素
public static void main(String[] args) {
	//目标数组
	int[] arr = new int[] {4,5,1,6};
	System.out.println(Arrays.toString(arr));
	//要删除的元素的下标
	int dst = 2;
	//创建一个新的数组,长度是原数组的长度-1
	int[] newArr = new int[arr.length-1];
	//复制原数组中除了要删除的哪个元素以外其他的元素
	for(int i = 0; i < newArr.length; i++) {
		if(i < dst) {
			newArr[i] = arr[i];
		}else {
			newArr[i] = arr[i+1];
		}
	}
	//新数组替换 旧数组
	arr = newArr;
	System.out.println(Arrays.toString(arr));
}

删除的运行结果:

[4, 5, 1, 6]
[4, 5, 6]

生命不息,编程不止!加油!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值