zoukankan      html  css  js  c++  java
  • Write a program to implement ArrayList

    Write a program to implement your own ArrayList class. It should contain add(), get(), remove(), size() methods. Use dynamic array logic. It should increase its size when it reaches threshold. 

    import java.util.Arrays;
     
    public class MyArrayList {
     
        private Object[] myStore;
        private int actSize = 0;
         
        public MyArrayList(){
            myStore = new Object[10];
        }
         
        public Object get(int index){
            if(index < actSize){
                return myStore[index];
            } else {
                throw new ArrayIndexOutOfBoundsException();
            }
        }
         
        public void add(Object obj){
            if(myStore.length-actSize <= 5){
                increaseListSize();
            }
            myStore[actSize++] = obj;
        }
         
        public Object remove(int index){
            if(index < actSize){
                Object obj = myStore[index];
                myStore[index] = null;
                int tmp = index;
                while(tmp < actSize){
                    myStore[tmp] = myStore[tmp+1];
                    myStore[tmp+1] = null;
                    tmp++;
                }
                actSize--;
                return obj;
            } else {
                throw new ArrayIndexOutOfBoundsException();
            }
             
        }
         
        public int size(){
            return actSize;
        }
         
        private void increaseListSize(){
            myStore = Arrays.copyOf(myStore, myStore.length*2);
            System.out.println("
    New length: "+myStore.length);
        }
         
        public static void main(String a[]){
            MyArrayList mal = new MyArrayList();
            mal.add(new Integer(2));
            mal.add(new Integer(5));
            mal.add(new Integer(1));
            mal.add(new Integer(23));
            mal.add(new Integer(14));
            for(int i=0;i<mal.size();i++){
                System.out.print(mal.get(i)+" ");
            }
            mal.add(new Integer(29));
            System.out.println("Element at Index 5:"+mal.get(5));
            System.out.println("List size: "+mal.size());
            System.out.println("Removing element at index 2: "+mal.remove(2));
            for(int i=0;i<mal.size();i++){
                System.out.print(mal.get(i)+" ");
            }
        }
    }
  • 相关阅读:
    BZOJ_4034 [HAOI2015]树上操作 【树链剖分dfs序+线段树】
    SPOJ QTree【树链剖分】
    BZOJ_1503 [NOI2004]郁闷的出纳员 【Splay树】
    Hibernate学习实例
    Educational Codeforces Round 64 C. Match Points 【二分思想】
    ramn 备份操作
    表值函数--自定义工作日历
    删除win10开始菜单中程序的目录
    C#自定义注释自动生成模板注释
    oralce知识第三章
  • 原文地址:https://www.cnblogs.com/hygeia/p/5165050.html
Copyright © 2011-2022 走看看