数组队列的编写

1.创建一个mylist类,构造好框架。

public class Mylsit{
//属性及相应的get方法和set方法


//构造方法


//自己编写的方法

}

 2.定义相关属性及get和set方法 

int length;
	 int size;
	 Object[] arrvalue;
     final int dflength=10;
     //get方法
	public int getLength() {
	        return length;
	 }
     public int getSize() {
	        return size;
	    }

3.构造方法。(这里只展示两种)

// 无参构造
	    public MyList(){
	        initList();
	    }
	    // 重复代码封装为的代码
	    private void initList(){
	        length = dflength;
	        arrvalue=new Object[length];
	        size=0;
	    }

	    // 传入数组长度的构造方法
	    public MyList(int initLength){
	        if(initLength<=0){
	            System.err.println("输入参数小于0,不在可取范围!");
	        }
	        if(initLength>=Integer.MAX_VALUE){
	            System.out.println("输入参数大于上限,不在可取范围");
	        }
	        if(initLength<=dflength){
	            initList();
	        }
	        if(initLength>dflength){
	            length = initLength;
	            arrvalue=new Object[length];
	            size=0;
	        }

	    }

4.方法一:数组扩容

 //扩容
	    public void grow(){
	        int oldlength = length;
	        int newlength = (oldlength>>1)+oldlength;
	        length = newlength;
	        Object[] newArrvalue = new Object[length];
	        // 然后 将原数组中的所有数据 存入新数组中
	        for (int i = 0; i < arrvalue.length; i++) {
	            newArrvalue[i]=arrvalue[i];
	        }
	        arrvalue = newArrvalue;
	        newArrvalue=null;

	        System.out.println("扩容:"+getLength());
	        System.out.println("元素个数:"+getSize());

	    }

 

5.方法二:增加元素 

 // 添加元素
	    public void add(Object value){
	        if(size>=length){
	            grow();
	        }
	        arrvalue[size++]=value;
	    }

 6.删除元素

 //删除元素
	    public void delete(int c) {
	    	check(c);
	    	arrvalue[b]=null;
	    	for(int i=b;i<length;i++) {
	    		arrvalue[i]=arrvalue[i+1];
	    	}
	    	arrvalue[length]=null;
	    }

7.查找(两种:1:按元素查找  2:按下标查找)

	    //查找元素
	    //按下标查找
	    int b=0;
	    public void check(int c) {
	    	
	    	for(int i=0;i<length;i++) {
	    		if(c==(int)arrvalue[i]) {
	    			
	    			System.out.println(c+"为数组中的第"+i+"个元素");
	    			b=i;
	    		}
	    	}
	    }
	    //按元素查找
	    public void check1(int c) {
	    	
	    	for(int i=0;i<length;i++) {
    			if((int)arrvalue[i]==c) {
    				System.out.println(i);
    			}
	    	}
	    }

8.修改数据(包含两种方法:按传入参数为下标或数据分类,其中利用一个Boolean参数进行判断)

//查改元素
	    public void change(int b1,int c,boolean index) {
	    	if(index==true) {
	        check(c);
	    	arrvalue[b]=b1;}
	    	else if(index==false) {
	    		for(int i=0;i<length;i++) {
	    			if((int)arrvalue[i]==c) {
	    				arrvalue[i]=b1;
	    			}
	    		}
	    	}
	    	
	    }

 最后可以创建主函数进行调试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱打辅助的小可爱

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

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

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

打赏作者

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

抵扣说明:

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

余额充值