数组增删改查

import java.util.Arrays;

public class TestDemo{
	
	static int[] nums = new int[5];//全局变量,可以在本类中给所有函数访问。公共
	
	static int count = 0;//1.计数器 统计有效元素的个数 2.新元素的插入下标
	public static void main(String[] args){
		
		
		add(0,10);
		add(1,20);
		add(2,30);
		print();
		
		add(1,50);
		print();
		add(4,60);
		print();
		add(5,70);
		print();
		
		delete(0);
		print();
		
		int look = select(1);
		System.out.println(look);
		
	}
	/*
		1.新增功能
	*/
	public static void add(int position,int value){
		
		//1.2扩容
		if(count == nums.length){//计数器和数组长度一致  满了
			expand();
		}
		
		//1.3 用户指定下标进行插入
		if(position > count || position <0 ){
			System.out.println("插入位置无效!");
			return;
		}
		
		//将有效的元素依次后移
		for(int i = count;i>position;i--){
			nums[i] = nums[i-1];
		}
		
		
		//1.1 在指定下标新增一个元素
		nums[position] = value;
		
		count++;//每新增一个元素,计数器累加
	}
	/*
		2.扩容
	*/
	public static void expand(){
		int[] newNums = Arrays.copyOf(nums,nums.length+1);
		//将新数组覆盖掉原数组
		nums = newNums;
	}
	
	/*
		3.删除
		根据下标删除指定元素
		将该位置之后的元素,依次向前移动
	*/
	public static void delete(int position){
		//3.1判断下标的有效
		if(position > count || position < 0){
			System.out.println("删除的下标无效!");
			return;
		}
		//3.2将删除位置元素之后的依次向前移动
		for(int i= position;i<count - 1;i++){
			nums[i] = nums[i+1];
		}
		//3.3删除了元素,有效元素的个数 -1
		count--;
	}
	/*
		4.更新
		根据下标更新数组中的元素
	*/
	public static void replace(int position,int value){
		if(position <0 || position > count){
			System.out.println("无效的下标");
			return;
		}
		nums[position] = value;
	}
	/*
		5.查看
		根据下标查看数组中的元素
	*/
	public static int select(int position){
		if(position <0 || position > count){
			System.out.println("无效的下标");
			return -1;//如果返回的是-1,无效的结果!
		}
		//查到了元素
		return nums[position];
	}
	
	/*
		遍历
	*/
	public static void print(){
		for(int i = 0;i<count;i++){
			System.out.print(nums[i]+"\t");
		}
		System.out.println();
	}
	
	
	
	
	
	
	
	
	
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值