数组实现

思想,存入Objiect类每存入一次就for一次,当数组不够的时候需要判断然后扩容

实现增删改查

 

package cn.jiedada._02inArray;

import java.util.Arrays;

/*
 * 存入任意数据
 * 扩容object类的大小
 * 打印我们想要的内容
 * 实现增删改查
 * */
public class inArray {
    Object[] date;
    int indexsize=0;
    int captipy;
    //调用自己的方法
    public inArray() {
        this(5);
    }
    public inArray(int captipy) {
        this.captipy=captipy;
        date=new Object[captipy];
    }
    public void add(Object obj){
        //对数组进行扩容
        if(indexsize>date.length-1){
            Object[] newdate=new Object[indexsize+20];
            System.arraycopy(date, 0, newdate, 0, indexsize);
            date=newdate;
        }
        date[indexsize]=obj;
        indexsize++;
    }
    /*覆写String
     * */
    @Override
    public String toString() {
        Object[] object = new Object[indexsize];
        System.arraycopy(date, 0, object, 0, indexsize);
        return Arrays.toString(object);
    }
    private void judje(int index) {
        /*if(index<0|index>indexsize){
            System.out.println("请输入正确的数"+indexsize);
        }*/
        if(index<0|index>indexsize)
        throw new ArrayIndexOutOfBoundsException("请输入正确的数0~"+indexsize);
    }    //查询
    public Object selectElemple(int index){
        judje(index);
        return date[index];
    }
    //查询
    public int selectNameElement(String name){
        for(int i=0;i<date.length;i++){
            if(date[i].equals(name)){
                return i;
            }
        }
        return -1;
    }
    //删除
    public void deleteElement(int index){
        judje(index);
        System.arraycopy(date, index+1, date, index,indexsize-index-1);
        indexsize--;    
    }
    public void deleteElement(String name){
        int index = selectNameElement(name);
        deleteElement(index);
    }

}
View Code

相关文章: