面向对象的数组(Java)

面向对象数组的操作(增删改查)

数组对象类
1.数组的元素插入
2.数组的元素的删除
3.数组元素的修改
4.数组元素的查看
5.数组元素的遍历
6.数组元素的长度

package array;

public class ArrayUtil {
	
	//用于存储整形数据的数组
	private int[] elements;
	
	//重写构造方法
	public ArrayUtil(){
		//初始化数组
		elements=new int[0];
	}
	
/********         数组插入元素       **************/	
	
	/**
	 * 向数组任意位置插入元素
	 * @param number
	 * @param element
	 * @return
	 */
	public int[] add(int number,int element){
		//判断插入位置的合理性
		if(number < 0  || number >elements.length){
			throw new RuntimeException("下标越界");
		}
		//创建一个新的数组,数组长度是原数组的长度+1
				int [] arr=new int[elements.length+1];
				//遍历原数组
				for(int i=0;i<elements.length;i++){
					//判断插入位置,留出插入位置
					if(i<number){
						arr[i]=elements[i];
					}else {
						arr[i+1]=elements[i];
					}
				}
				//插入位置添加元素
				arr[number]=element;
				//新数组赋值给原数组
				elements=arr;
				//返回原数组,数组插入元素完成
				return elements;
	}
	
	/**
	 * 向数组头部添加一个元素
	 * @param element
	 * @return
	 */
	public int[] addHead(int element){
				//创建一个新的数组,数组长度是原数组的长度+1
				int [] arr=new int[elements.length+1];
				//遍历原数组,将元素组的值通过下标一一赋值给新数组,新数组下标总是大于原数组下标1
				for(int i=0;i<elements.length;i++){
					arr[i+1]=elements[i];
				}
				//为新数组的第一个索引赋值需要添加的元素
				arr[0]=element;
				//新数组赋值给原数组
				elements=arr;
				//返回原数组,数组头部添加元素完成
				return elements;
	}
	
	
	
	
	/**
	 * 向数组末尾添加一个元素
	 * @param element
	 * @return
	 */
	public int[] addEnd(int element){
		//创建一个新的数组,数组长度是原数组的长度+1
		int [] arr=new int[elements.length+1];
		//遍历原数组,将元素组的值通过下标一一赋值给新数组
		for(int i=0;i<elements.length;i++){
			arr[i]=elements[i];
		}
		//为新数组的最后一个索引赋值需要添加的元素
		arr[elements.length]=element;
		//新数组赋值给原数组
		elements=arr;
		//返回原数组,数组末尾添加元素完成
		return elements;
	}
	
	

	/********         数组插入元素END       **************/
	
	
	
	
	

	
	/********         数组删除元素       **************/
	
	/**
	 * 删除任意位置的一个元素
	 * @param number
	 * @return
	 */
	
	public int[] delete(int number){
				//判断删除的元素是否为空数组
				if(elements.length<=0){
					throw new RuntimeException("这是一个空数组");
				}
				//判断删除下标位置的合理性
				if(number <0 || number >=elements.length){
					throw new RuntimeException("下标越界");
				}
				//创建一个新的数组,数组长度是原数组的长度+1
				int [] arr=new int[elements.length-1];
				if(elements.length == 1){
					//新数组赋值给原数组
					elements=arr;
				//返回原数组,数组末尾添加元素完成
				}else{
					//遍历数组
					for(int i=0;i<arr.length;i++){
						if(i<number){
							arr[i]=elements[i];
						}else{
							arr[i]=elements[i+1];
						}
					}
				}
			//新数组赋值给原数组
			elements=arr;
			//返回原数组,数组末尾添加元素完成
			return elements;
	}
	
	
	
	/**
	 * 删除头部第一个元素
	 * @return
	 */
	public int[] deleteHead(){
		//判断删除的元素是否为空数组
		if(elements.length<=0){
			throw new RuntimeException("这是一个空数组");
		}
		//创建一个新的数组,数组长度是原数组的长度+1
		int [] arr=new int[elements.length-1];
		
		if(elements.length == 1){
			//新数组赋值给原数组
			elements=arr;
		//返回原数组,数组末尾添加元素完成
		return elements;
		}else{
			//遍历新数组,将原数组的值通过下标一一赋值给新数组,
		for(int i=0;i<arr.length;i++){
			arr[i]=elements[i+1];
		}
		//新数组赋值给原数组
			elements=arr;
		//返回原数组,数组末尾添加元素完成
		return elements;
		}
	}
	
	
	
	
	/**
	 * 删除末尾的一个元素
	 * @return
	 */
	public int[] deleteEnd(){
		//判断删除的元素是否为空数组
		if(elements.length<=0){
			throw new RuntimeException("这是一个空数组");
		}
		//创建一个新的数组,数组长度是原数组的长度+1
		int [] arr=new int[elements.length-1];
		if(elements.length == 1){
			//新数组赋值给原数组
			elements=arr;
		//返回原数组,数组末尾添加元素完成
		return elements;}else{
		//遍历新数组,将原数组的值通过下标一一赋值给新数组,
		for(int i=0;i<arr.length;i++){
			arr[i]=elements[i];
		}
		//新数组赋值给原数组
			elements=arr;
		//返回原数组,数组末尾添加元素完成
		return elements;
	}
	}
	
	/********         数组删除元素END       **************/
	
	
	
	
	
	/********         数组修改元素       **************/
	
	/**
	 * 修改数组任意位置元素
	 * @param element
	 * @return
	 */
	public int[] alter(int number,int element){
		//判断删除的元素是否为空数组
		if(elements.length<=0){
					throw new RuntimeException("这是一个空数组");
		}
		if(number <0 || number >=elements.length){
			throw new RuntimeException("下标越界");
		}
	
		elements[number]=element;
		//返回原数组,数组末尾添加元素完成
		return elements;
	}
	
	

	/**
	 * 修改头部第一个元素
	 * @param element
	 * @return
	 */
	public int[] alterHead(int element){
		//判断删除的元素是否为空数组
		if(elements.length<=0){
					throw new RuntimeException("这是一个空数组");
		}
		elements[0]=element;
		//返回原数组,数组末尾添加元素完成
		return elements;
	}
	
	
	/**
	 * 修改尾部最后一个元素
	 * @param element
	 * @return
	 */
	public int[] alterEnd(int element){
		//判断删除的元素是否为空数组
		if(elements.length<=0){
					throw new RuntimeException("这是一个空数组");
		}
		elements[elements.length-1]=element;
		//返回原数组,数组末尾添加元素完成
		return elements;
	}
	
/********         数组修改元素END       **************/
	

	
	
	/********         数组查询元素     **************/
	/**
	 * 查询数组头部第一个元素
	 * @return
	 */
	public int  inquireHead(){
		//判断删除的元素是否为空数组
		if(elements.length<=0){
					throw new RuntimeException("这是一个空数组");
		}
		return elements[0];
	}
	
	
	/**
	 * 查询数组尾部最后一个元素
	 * @return
	 */
	public int  inquireEnd(){
		//判断删除的元素是否为空数组
		if(elements.length<=0){
					throw new RuntimeException("这是一个空数组");
		}
		return elements[elements.length-1];
	}
	
	
	
	/**
	 * 查询数组任意位置元素
	 * @param number
	 * @return
	 */
	public int  inquire(int number){
		//判断删除的元素是否为空数组
		if(elements.length<=0){
					throw new RuntimeException("这是一个空数组");
		}
		
		if(number <0 || number >=elements.length){
			throw new RuntimeException("下标越界");
		}
		
		return elements[number];
	}
	
/********         数组查询元素END       **************/
	
	
	
	
	/********         查寻数组    **************/
		
	public String arrayFor(){
		String str="[";
		if(elements.length ==0){
			str+="]";
			return str;
		}
		for(int i=0;i<elements.length;i++){
			str+=elements[i];
			if(i!=elements.length-1){
				str+=",";
			}
		}
		
		str+="]";
		return str;
	}
	
	/********         查询数组END       **************/
	
	/********         查询数组长度       **************/
	
	public int arrayLength(){
		int l=0;
		if(elements.length ==0){
			return l;
		}
		
		for(int i=0;i<elements.length;i++){
			l=i;
		}
		return l+1;
	}
	
	/********         查询数组长度       **************/
	
	
	
	

}

数组对象类之测试类

package array;

public class ArrayTest {
	public static void main(String[] args) {
		ArrayUtil au=new ArrayUtil();
		
	/************添加元素测试*****************/	
		//任意位置添加数据(空数组,位置只能是0了)
		au.add(0, 1);
		//数组头部添加一个元素
		au.addHead(0);
		//数组尾部添加一个元素
		au.addEnd(2);
		
				//任意位置添加数据
				au.add(3, 3);
				//数组头部添加一个元素
				au.addHead(-1);
				//数组尾部添加一个元素
				au.addEnd(4);
		
		//查看添加元素后的数组
		System.out.println("查看添加元素后的数组"+au.arrayFor());
		//查看数组长度
		System.out.println("查看添加元素后的数组的长度"+au.arrayLength());
		
		System.out.println("----------------------------");
		
		/***********添加元素测试END***************/
		
		
		/***********删除元素测试***************/
		//删除任意位置的一个元素
			au.delete(3);
			System.out.println("查看删除任意位置元素后的数组"+au.arrayFor());
		//删除头部元素
			au.deleteHead();
			System.out.println("查看删除头部位置元素后的数组"+au.arrayFor());
		//删除尾部元素
			au.deleteEnd();
			System.out.println("查看删除尾部位置元素后的数组"+au.arrayFor());
			//查看数组长度
			System.out.println("查看添加元素后的数组的长度"+au.arrayLength());
			System.out.println("----------------------------");
		
		
		/***********删除元素测试END***************/
			
			
			
			
		

			/***********修改元素测试***************/
			//修改任意位置的一个元素
				au.alter(1, 200);
				System.out.println("查看修改任意位置元素后的数组"+au.arrayFor());
			//修改头部元素
				au.alterHead(100);
				System.out.println("查看修改头部位置元素后的数组"+au.arrayFor());
			//修改尾部元素
				au.alterEnd(300);
				System.out.println("查看修改尾部位置元素后的数组"+au.arrayFor());
				//查看数组长度
				System.out.println("查看修改元素后的数组的长度"+au.arrayLength());
				System.out.println("----------------------------");
			
			
			/***********修改元素测试END***************/
		
		
				/***********查询元素测试***************/
				
				//查询任意位置的一个元素
					System.out.println("查看任意位置1的元素"+au.inquire(1));
				//查询头部元素
					System.out.println("查看头部位置元素"+au.inquireHead());
				//查询尾部元素
					System.out.println("查看尾部位置元素"+au.inquireEnd());
					//查看数组长度
					System.out.println("查看数组的长度"+au.arrayLength());
					System.out.println("----------------------------");
				
				
				/***********查询元素测试END***************/
		
		
		
		
	}
}

运行截图

在这里插入图片描述

太子压阵
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大树下躲雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值