java数组参数分析图,及数组多次删除元素

数组参数分析图
在这里插入图片描述

数组地址转移分析图
在这里插入图片描述数组多次删除元素及数组添加元素

/*
   a. 找出数组中最大值的下标位置
    b. 找出数组中最小值的下标位置
	c. 在指定位置插入指定元素【难点】
    存在一个数组,数组中的元素为
		int[] array = {1, 3, 5, 7, 9, 11, 13, 15, 17, 0};
		要求
			1. 0是无效元素,仅占位使用
			2. 当前数组中【有效元素】个数为9
		需求
			在该数组中的指定下标位置放入指定元素
	d. 删除数组中的指定下标的元素【难点】
	存在一个数组,数组中的元素为
		int[] array = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
		要求:
			1. 0是无效元素,仅占位使用
		需求:
			在当前数组中删除指定下标的元素
		例如:
			删除下标5的元素
			结果 {1, 3, 5, 7, 9, 13, 15, 17, 19, 0} 
			0占位!!!
*/
class Test1 {
	public static void main(String[] args) {
		/*定义一个int型数组,容量为10*/
		int[] arr = {1, 3, 45, 546, 23, 2, 34, 34, 54, 4};	
		//调用得到定义数组的最大元素所在下标的方法	
		getSubscriptMaxNumber(arr);
		System.out.println();
		
		//调用得到定义数组的最小元素所在下标的方法
		getSubscriptMinNumber(arr);
		System.out.println();
		
		int[] array = {1, 3, 5, 7, 9, 11, 13, 15, 17, 0};
		int position = 8;
		int number = 100;
		//调用将元素插入到数组的指定位置的方法
		insert(array, number, position);
		System.out.println("插入元素之后");
		for (int i = 0; i < array.length; i++) {
			System.out.print(array[i] + "\t");
		}
		System.out.println();
		System.out.println();
		
		int[] array1 = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
		int position1 = 0;
		
		//有效元素个数
		
		int count = 10;
		
		//调用将数组的指定位置元素删除的方法
		count = delete(array1, position1, count);
		System.out.println("有效元素个数:" + count);
		System.out.println("删除元素之后");
		for (int i = 0; i < array1.length; i++) {
			System.out.print(array1[i] + "\t");
		}
		System.out.println();
		
		count = delete(array1, position1, count);
		System.out.println("有效元素个数:" + count);
		System.out.println("删除元素之后");
		for (int i = 0; i < array1.length; i++) {
			System.out.print(array1[i] + "\t");
		}
	}
	
	/**
	*该方法得到定义数组的最大元素所在下标,输出该下标
	*@param arr int[] 数组类型 传递的数组参数
	*无返回值
	*/
	public static void getSubscriptMaxNumber(int[] arr) {	
		int max = 0;
		for (int i = 0; i < arr.length; i++) {
			if (arr[max] < arr[i]) {
				max = i;
			}
		}
		System.out.println("数组arr中最大元素所在下标等于:" + max);
	}
	/**
	*该方法将元素插入到数组的指定位置
	*@param arr int[] 数组类型 传递的数组参数
	*无返回值
	*/
	public static void getSubscriptMinNumber(int[] arr) {
		int min = 0;
		for (int i = 0; i < arr.length; i++) {
			if (arr[min] > arr[i]) {
				min = i;
			}
		}
		System.out.println("数组arr中最小元素所在下标等于:" + min);
	}
	
	/**
	*该方法将元素插入到数组的指定位置
	*@param array int[] 数组类型 传递的数组参数
	*@param number int类型 表示要插入的元素
	*@param position int类型 表示指定的数组下标位置
	*无返回值
	*/
	public static void insert(int[] array, int number, int position) {	
	    //有效元素依次后移,直到将指定下标位置元素赋值给后一个位置
		for (int i = array.length - 1; i > position; i--) {
			array[i] = array[i - 1];
		}
		//将新值赋值到指定数组的下标位置
		array[position] = number;
	}
	
	/**
	*该方法将数组的指定位置元素删除,返回数组有效元素个数
	*@param array int[] 数组类型 传递的数组参数
	*@param count int类型 传递的数组有效元素个数
	*@param position int类型 表示指定的数组下标位置
	*
	*@return count  int类型 表示指定的数组有效元素个数
	*/
	public static int delete(int[] array, int position, int count) {
		//有效元素个数判断
	    if (count = 0) {
			System.out.println("有效元素个数为0,不必删除!!");
			return 0;
		}
	    //从指定位置开始,有效元素依次前移
		for (int i = position; i < count - 1; i++) {
			array[i] = array[i + 1];
		}
		//无效元素0(占位使用)赋值给数组最后一个,即数组的有效元素 -1
		array[count - 1] = 0;
		count--;
		return count;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值