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)+" ");
            }
        }
    }
  • 相关阅读:
    Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
    "=="和equals方法究竟有什么区别?
    Tomcat发生java.lang.OutOfMemoryError: PermGen space的解决方案
    HashMap原理
    springMVC
    SqlServer和Oracle修改表结构语句
    quartz定时任务时间表达式说明
    Linq to Entity 时间差作为筛选条件产生的问题
    密码学基础
    C#如何使用异步编程【BeginInvoke/EndInvoke】
  • 原文地址:https://www.cnblogs.com/hygeia/p/5165050.html
Copyright © 2011-2022 走看看