删除数组中的指定下标的元素

/*
存在一个数组,数组中的元素为
	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占位!!!
*/
分析:

在这里插入图片描述

实现代码
package com.qfedu.a_array;

import java.util.Arrays;

public class Demo5 {
	public static void main(String[] args) {
		int[] array = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
		remove(array, 9);
		
		System.out.println(Arrays.toString(array));
	}
	/*
	1.5 删除数组中的指定下标的元素【难点】
	存在一个数组,数组中的元素为
		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占位!!!
	推理过程:
		    从删除位置开始,之后的元素整体向前移动,
		并且需要在数组原本最后一个位置上存放元素0,0
		是无效元素,占位使用
		    arr[3] = arr[4];
		    arr[4] = arr[5];
		    arr[5] = arr[6];
		    arr[6] = arr[7];
		    arr[7] = arr[8];
		    arr[8] = arr[9];
		    arr[i] = arr[i + 1];
		    arr[i - 1] = arr[i];
		    arr[9] = 0;
	方法分析:
		public static 不要问
		返回值类型:
			boolean
		方法名:
			remove
		形式参数列表:
			1. 删除数据的数组
			2. 指定删除数据的下标位置
	方法声明:
		public static boolean remove(int[] arr, int index)
	*/
	/**
	 * 删除数组中指定下标元素的内容
	 * 
	 * @param arr 源数据数组,int类类型
	 * @param index 指定删除的下标位置
	 * @return 删除操作成功返回true,失败返回false
	 */
	public static boolean remove(int[] arr, int index) {
		// 参数合法性判断
		// index < 0 || index >= arr.length
		if (index < 0 || index > arr.length - 1) {
			System.out.println("Input Parameter is Invalid");
			return false;
		}
		
		/*
		    arr[3] = arr[4];
		    arr[4] = arr[5];
		    arr[5] = arr[6];
		    arr[6] = arr[7];
		    arr[7] = arr[8];
		    arr[8] = arr[9];
		    arr[i] = arr[i + 1];
		    从删除位置开始,到数组的最后一个有效元素位置结束
		 */
		for (int i = index; i < arr.length - 1; i++) {
			arr[i] = arr[i + 1];
		}
		
		// 最后一位数据赋值为0,占位,同时告知用户这是一个无效数据
		arr[arr.length - 1] = 0;
		return true;
	}
}
发布了17 篇原创文章 · 获赞 15 · 访问量 7649

猜你喜欢

转载自blog.csdn.net/qq_40197991/article/details/104738280