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)+" ");
            }
        }
    }
  • 相关阅读:
    主键索引就是聚集索引吗?
    聚集索引以及非聚集索引
    IO阻塞模型、IO非阻塞模型、多路复用IO模型
    Log4j的使用说明
    前置机是什么
    转:图文理解区块链
    DQL、DML、DDL、DCL全名是啥?
    OLAP和OLTP的区别
    JAVA之运算符优先级
    JAVA之异常处理(一)
  • 原文地址:https://www.cnblogs.com/hygeia/p/5165050.html
Copyright © 2011-2022 走看看