zoukankan      html  css  js  c++  java
  • 仿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

  • 相关阅读:
    浅谈TCP三次握手和四次挥手
    浅谈网络七层协议
    websocket实例
    浅谈websocket
    python的垃圾回收机制
    解释型语言和编译型语言的区别
    装饰器修复技术@wraps
    Django基础知识点
    项目再Windows上没有问题,但是在Linux上运行报错OSError: [Errno 8] Exec format error:
    在Centos 7 系统上部署flask 项目 pipenv+nginx+gunicorn
  • 原文地址:https://www.cnblogs.com/VersionP1/p/7593077.html
Copyright © 2011-2022 走看看