• 动态数组


    import java.util.Iterator;
    
    /**
     * 动态数组
     * 成员变量:容器数组arr,元素个数count
     * 私有方法:调整数组大小resize()
     * 公开方法:添加元素add()、删除元素delete()、获取大小size()、判断是否为空isEmpty()
     * 要求:实现泛型、迭代器、
     */
    public class DynamicArray<Item> implements Iterable<Item> {
        private Item[] arr;
        private int count;
    
        public DynamicArray() {
            arr = (Item[])new Object[5];
            count = 0;
        }
        public DynamicArray(int n) {
            arr = (Item[])new Object[n];
            count = 0;
        }
    
        private void resize(int size){
            Item[] temp =  (Item[])new Object[size];
            for(int i=0;i<arr.length;i++){
                temp[i]=arr[i];
            }
            arr = temp;
        }
        public void add(Item e){
            if(arr.length == count){
                resize(2*arr.length);
            }
            arr[count]=e;
            count++;
        }
        public boolean delete(Item e){
            for(int i=0;i<count;i++){
                if(arr[i]==e){
                    for(int j=i;j<count-1;j++){
                        arr[j]=arr[j+1];
                    }
                    arr[count]=null;
                    count--;
                    return true;
                }
            }
            return false;
        }
        public int size(){
            return count;
        }
        public boolean isEmpty(){
            if(count==0) return true;
            return false;
        }
    
        @Override
        public Iterator<Item> iterator() {
            return new Iterator<Item>() {
                int i=0;
                @Override
                public boolean hasNext() {
                    if(i<count) return true;
                    return false;
                }
    
                @Override
                public Item next() {
                    return arr[i++];
                }
            };
        }
    }
    /**
     * 测试案例
     */
    public class TestCase {
        public static void main(String[] args) {
            DynamicArray<Integer> integerDynamicArray = new DynamicArray<>();
            integerDynamicArray.add(1);
            integerDynamicArray.add(2);
            integerDynamicArray.add(3);
            integerDynamicArray.add(4);
            integerDynamicArray.add(5);
            integerDynamicArray.add(6);
            integerDynamicArray.add(7);
            integerDynamicArray.delete(4);
            System.out.println(integerDynamicArray.size());
            System.out.println(integerDynamicArray.isEmpty());
            System.out.println("======================");
            for(Integer e :integerDynamicArray){
                System.out.println(e);
            }
        }
    }
    //结果
    6
    false
    ======================
    1
    2
    3
    5
    6
    7
  • 相关阅读:
    web动静分离
    vm采用NAT方式连接时,设置静态ip
    nginx实现tcp负载均衡
    读取文件
    线程池源码分析
    mongodb操作
    bind
    Xss攻击
    json和java对象相互转换
    静态资源默认加载路径
  • 原文地址:https://www.cnblogs.com/youzoulalala/p/11089745.html
Copyright © 2020-2023  润新知