용기 학습10: Vector & ArrayList & LinkedList

2169 단어 LinkedList
하나.전언
  • 예전에는 Vector라는 대상이 낯설고 적게 쓰였고, 대상의 이름(Vector 벡터, 벡터)도 영문을 몰라 새로운 것인 줄 알았는데...
  • 앞에서 Array List와 Linked List의 원본을 배웠습니다. 원래는 Vector 원본을 써서 분석하려고 했는데 봤는데 Vector가 Array List와 똑같아서 그만두었습니다.이 글은 이 세 가지List를 간단하게 비교해 보자.

  • 둘.Vector & ArrayList
  • Vector 스레드는 안전합니다. 모든 방법은synchronized입니다.Array List 스레드가 안전하지 않습니다.
  • 확장
    //ArrayList
    public void ensureCapacity(int minCapacity) {
    	modCount++;
    	int oldCapacity = elementData.length;
    	if (minCapacity > oldCapacity) {
    	    Object oldData[] = elementData;
                // (oldCapacity * 3)/2 + 1
    	    int newCapacity = (oldCapacity * 3)/2 + 1;
        	    if (newCapacity < minCapacity)
    		newCapacity = minCapacity;
                // minCapacity is usually close to size, so this is a win:
                elementData = Arrays.copyOf(elementData, newCapacity);
    	}
     }
    
    //Vector
    private void ensureCapacityHelper(int minCapacity) {
    	int oldCapacity = elementData.length;
    	if (minCapacity > oldCapacity) {
    	    Object[] oldData = elementData;
                // capacityIncrement,Vector 
                // oldCapacity + capacityIncrement oldCapacity * 2
    	    int newCapacity = (capacityIncrement > 0) ?
    		(oldCapacity + capacityIncrement) : (oldCapacity * 2);
        	    if (newCapacity < minCapacity) {
    		newCapacity = minCapacity;
    	    }
                elementData = Arrays.copyOf(elementData, newCapacity);
    	}
    }
    
    
    
  • 버전: Vector는Hashtable과 같기 때문에 jdk1.0 있는 것들, 코드의 질이 보통이다.Array List는 1.2에 나타납니다.
  • 이름: 습관 ArrayList.Vector remove Elementat (int index) 와 Array List remove (int index) 를 비유합니다.

  • 셋.ArrayList & LinkedList
  • ArrayList 내부는 수조로 이루어지고LinkedList 내부는 양방향 체인표로 이루어진다.
  • ArrayList는 원소를 옮겨다니는 효율이 높고LinkedList는 원소를 삽입하여 삭제하는 효율이 높다.
  • 그러나 문제는 절대적인 것이 아니라 그 말인지 서로 다른 장면에서 자신에게 맞는 데이터 구조를 사용한다.

  • 넷.PS
    기술 함량이 매우 없는 문장, 벽돌을 찍는 것을 환영하고, 평론을 환영하며, 나로 하여금 Vector & Array List & Linked List가 또 나의 눈앞을 밝게 할 수 있는 것이 있는지 발견하게 한다.

    좋은 웹페이지 즐겨찾기