Write a program to implement ArrayList

5693 단어 자바
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){             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){             System.out.print(mal.get(i)+" ");         }     } }

 
다음으로 전송:https://www.cnblogs.com/hygeia/p/5165050.html

좋은 웹페이지 즐겨찾기