仿ArrayList功能的bag类

仿ArrayList功能的bag类

要想做到能够实现ArrayList功能,首先要有一个能往里填任何类型元素的的空间,但是不能用ArrayList来创建空间,这样这个项目就没有意义,因此,我创建了一个Object类的数组,以此来作为元素的空间。

private Object[] myarray = new Object[5];

1、getCurrentSize():获取数组中存放元素的个数

 /*
    int 空的格子=0,有元素的格子=0
    for(遍历一遍数组){
    if(元素为空){
    空格++}
    }
    有元素的格子=数组长度-空的格子
    返回 有元素的格子
    */
    @Override
    public int getCurrentSize() {
        int emptyBlock=0;
        int having=0;
        for(int indedx=0;indedx<myarray.length;indedx++){
            if(myarray[indedx]==null){
                emptyBlock++;
            }

        }
        having = myarray.length-emptyBlock;
        return having;
    }

2、isEmpty():判断数组是否为空

    /*
    boolean 判断
    int 空格数
    for(遍历数组){
    if(数组的第i项为空{
    空格数++
    }
    }
    if(空格数==数组长度){
    返回真
    }else{
    返回假
    }
    */
    @Override
    public boolean isEmpty() {
        boolean judge = true;
        int emptyTimes = 0;
        for (int i =0;i<myarray.length;i++){
            if(myarray[i]==null){
                emptyTimes++;
            }

        }
        if(emptyTimes == myarray.length){
            judge = true;
        }else{
            judge = false;
        }
        return judge;
    }

3、add(Object newEntrty):往数组中添加元素

  /*
    for(遍历数组){
    if(数组第i项为空){
    数组第i项 = newEntry;
    停止循环
    }
    }
    * */
    @Override
    public boolean add(Object newEntry) {
        for(int i=0;i<myarray.length;i++){
            if(myarray[i]==null){
                myarray[i]=newEntry;
                break;
            }
        }
        return true;
    }

4、remove(Object anEntry):移除数组中的指定元素

 /**
     * for(遍历数组){
     *     if(数组第i项 == anEntry){
     *         数组第i项变为空
     *     }
     * }
     */

    @Override
    public boolean remove(Object anEntry) {
        for(int i=0;i<myarray.length;i++){
            if(myarray[i]==anEntry){
                myarray[i]=null;
            }
        }
        return true;
        }

5、clear()将数组清空

  /*
        *for(遍历数组){
        * 数组的每一项变为空
        * }
        */
    @Override
    public void clear() {
        for(int index=0;index<myarray.length;index++){
            myarray[index] = null;
        }
    }

6、getFrequencyOf(Object anEntry):获取数组中某元素的个数

 /**
     * int 次数
     * for(遍历数组){
     *     if(数组第index项 == anEntry){
     *         次数++
     *     }
     *      if(数组该元素为空){
            停止循环
            }
     * }
     */
    @Override
    public int getFrequencyOf(Object anEntry) {
        int times =0;
        for(int index=0;index<myarray.length;index++){
            if(myarray[index].equals(anEntry)){
                times++;
            }
            if(myarray[index] == null){
                break;
            }
        }
        return times;
    }

7、contains(Object anEntry):检验某元素是否包含在这数组中

 /**
     * boolean 判断
     * for(遍历数组){
     *     if(数组第index == anEntry){
     *         判断为真
     *     }
     *     停止循环
     * }
     */
    @Override
    public boolean contains(Object anEntry) {
        boolean judge = true;
        for(int index=0;index<myarray.length;index++){
            if (myarray[index]==anEntry){
                judge = true;
            }
            break;
        }
        return judge;
    }

代码链接:

BagInterface.java

Bag.java

posted @ 2017-09-25 17:50  FunnyOne  阅读(324)  评论(1编辑  收藏  举报