简单的数组插入抽出源码

一篇博客的附录(主线的后续会补)

根据韩顺平老师的题目稍微改了一下
int[] arr = {3, 10, 26, 28, 30, 40, 50, 60};
插入和输出数组,
要求顺序插入
同时判断抽出的元素是否在数组里面

后续会写博客讲解数组,分支,循环
同时也会那博客解释一下代码
copy代码一定要在评论打个谢谢,球球啦!

import java.util.Scanner;
public class InsertionSort {
public static void main(String[] args) {
	//静态创建数组
	int[] arr = {3, 10, 26, 28, 30, 40, 50, 60};
	//Scanner方法
	Scanner myScanner = new Scanner(System.in);
	//死循环
	for(;;) {
	//获取判断数
	System.out.println("请选择你的操作:顺序插入一个数进入数组请输入:插入 "
						+"删除一个数组里面的一个数请输入;抽出 "+"输入其他则退出程序");
	String a = myScanner.next();
	//条件判断
	if(a.equals("插入")) {
	//获取想要插入的元素
	System.out.print("请输入你想插入的数字");
	int num = myScanner.nextInt();
	int index = -1;
	//创建一个addArr的数组,长度比原数组,加一
	int[] addArr =  new int[arr.length + 1];
	//遍历数组
	for(int i = 0; i < addArr.length; i++) {
		//判断插入的数和数组里面各个元素的大小
		if(num < arr[i]) {
			index = i;
			break;
		}
	}
		for(int i = 0,j = 0; i < addArr.length; i++) {
			if(i != index) {
				addArr[i] = arr[j];
				j++;
			}
			else {
				addArr[i] = num;
			}
		}
	//地址拷贝,输出验证结果
	arr = addArr;
	System.out.println("=====插入元素后的数组=====");
	for(int i = 0; i < arr.length;i++) {
		System.out.print(arr[i] + " " );
	}
	System.out.println();
    }
	//条件判断,抽出数组元素
	else if(a.equals("抽出")) {
	//获取想要抽出的数组元素
	System.out.println("请输入你想要抽出的元素");
	int num1 = myScanner.nextInt();	
	//给出锚定物标记
	int index = -1;
	int index1 = -1;
	//创建一个数组,抽出元素后的数组比原数组长度减一
	int[] decArr = new int[arr.length - 1]; 
	//循环遍历数组
	for(int i = 0; i < arr.length; i++) {
	//条件判断需要抽出的数是否是数组内的元素	
		if(num1 == arr[i]) {
			index = i;
		}
	}
	//条件判断锚定数的数值是否改动,如果没有改动说明并没有找到数
	if(index == -1) {
		System.out.println("你所输入的数不在数组内,一切都在我的计算中别想卡bug");
		continue;
	}
	//改动了说明找到那个数了
	else{
		System.out.println("你想要删除的数找到了");
	//循环遍历数组赋值,循环条件的判断根据锚定的数进行范围限定。
	for(int i = 0; i < index; i++) {
		decArr[i] = arr[i];
		}
	//略过需要抽出的数继续循环遍历
	for(int i = index; i < decArr.length; i++) {
		decArr[i] = arr[i+1];
	}
	//地址拷贝
	arr = decArr;
	//遍历输出数组验证正确性
	System.out.println("=====抽出元素后的数组=====");
	for(int i = 0; i < arr.length;i++) {
		System.out.print(arr[i] + " ");
	}
	System.out.println();
	}
}
	else {
		System.out.println("退出程序成功");
		break;
	}
}
}
}

运行结果
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值