자바 에서 AyyarList 류 의 기본 실현

2351 단어 자바 노트
Array List:바 텀 은 배열 로 이 루어 지고 스 레 드 가 안전 하지 않 으 며 효율 이 높 습 니 다.그래서 조회 가 빠 르 고 삽입,삭제 가 느리다.보통 Ayyay List 로 충분 합 니 다.
LinkedList:링크 를 바탕 으로 이 루어 지고 스 레 드 가 안전 하지 않 으 며 효율 이 높 습 니 다.그래서 조회 가 느 리 고 삽입,삭제 가 빠르다.
Vector:배열 기반 구현.스 레 드 는 안전 하고 효율 이 낮다.다 중 스 레 드 상황 에서 만 Vector 를 사용 합 니 다.
/**
 *       ArrayList,         ArrayList      
 * @author Administrator
 *
 */
public class MyArrayList {

	private Object[] elementData;
	private int size;
	
	public MyArrayList(){
		this(10); //        10
	}
	
	public MyArrayList(int initialCapacity){
		if(initialCapacity<0)
			try {
				throw new Exception();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		elementData = new Object[initialCapacity];	
	}	
	
	public int size(){
		return size;
	}
	
	public void ensureCapacity(){
		//     ,      
		if(size==elementData.length){
			Object[] newArray = new Object[size*2];
			System.arraycopy(elementData, 0, newArray, 0, elementData.length);
			elementData = newArray;
		}
	}
	
	public void add(Object o){
		ensureCapacity();
		elementData[size]=o;
		size++;
	}
	
	public void add(int index, Object obj){
		rangeCheck(index);
		ensureCapacity();
		for(int i=size-1;i>=index;i--){
			elementData[i+1]=elementData[i];
		}
		elementData[index]=obj;
		size++;
	}
	
	public boolean isEmpty(){
		return size==0;
	}
	
	
	public Object get(int index){
		rangeCheck(index);
		return elementData[index];
	}
	
	public Object remove(int index){
		rangeCheck(index);
		Object deletedObject = elementData[index];
		//int numMoved = size-index-1;
		//System.arraycopy(elementData, index+1, elementData, index, numMoved);
		for(int i=index+1; i= size){
			try {
				throw new Exception();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
			MyArrayList list = new MyArrayList(3);
			list.add(123);
			list.add("haha");
			list.add("wxxyy");
			list.add("you");
			System.out.println(list.get(3));
	}

}

좋은 웹페이지 즐겨찾기