数组(四)数组的添加、替换、移除、扩容

数组的添加、替换、移除、扩容

package com.array.one;

public class TestList {
	static int[] nums = new int[5];
	
	static int index = 0;//有效元素的个数,也可以代表下一个无效元素的插入位置
	public static void main(String[] args) {
		insert(0,11);
		insert(1,22);
		insert(2,33);
		insert(3,44);
		print();
		
		//插入数据
		insert(4,55);
		
		//遍历
		print();
	}
	
	//向数据中插入一个新元素
	public static void insert(int position,int value) {
		
		if(position < 0 || position > index) {
			System.out.println("您好,用户,您输入的位置有误,请输入一个从0 ~ "+index+"之间的整数");
			return;
		}
		
		//将原数据依次向右移动
		for(int i = index; i > position ; i--) {
			nums[i] = nums[i-1];
		}
		
		//新值存入目标位置
		nums[position] = value;
		index++;
	}
	
	//移除
	public static void remove(int position) {
		if(position < 0 || position > index) {
			System.out.println("您好,用户,您输入的位置有误,请输入一个从0 ~ "+index+"之间的整数");
			return;
		}
		
		//将原数据依次向要删除元素的下标移动
		for(int i = position; i < index -1 ; i++) {
			nums[i] = nums[i+1];
		}
		
		index--;
		//最后一位元素使用0来进行占位
		nums[index] = 0;
	}
	
	//替换
	public static void replace(int position,int value) {
		if(position < 0 || position > index) {
			System.out.println("您好,用户,您输入的位置有误,请输入一个从0 ~ "+index+"之间的整数");
			return;
		}
		
		nums[position] = value;
		
	}
	
	//数组扩容
	public static void expand() {
		//获得新数组(带有原值)
		int[] newArray = new int[nums.length * 2];
		
		for(int i = 0;i <nums.length; i++) {
			newArray[i] = nums[i];
		}
		
		//替换nums变量中的地址(称为替换引用)
		//含义:将原nums中指向长度为5的数组,替换成现在指向长度为10的新数组
		nums = newArray;
	}
	
	
	//遍历数组
	public static void print() {
		for(int i = 0; i < index; i++) {
			System.out.println(nums[i]);
		}
	}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值