java 컨테이너 설명 1 (Array List)

1066 단어
1. 기본 스토리지
  private transient Object[] elementData;
  private int size;

요소 데이터 구성원에transient 키워드를 추가했는데 이 관건은 이 클래스가 서열화되고 반서열화될 때 참여하지 않는 것이다. 이것은 요소 데이터를 저장하는 것은 고정된 수조로 요소가 저장되지 않은 수조의 위치도 서열화되지 않도록 하기 때문에 사용자 정의의 서열화 방법을 사용한다.2. 구조 방법은 두 개를 제공하는데 하나는 기본 크기가 10인 수조이고, 다른 하나는 크기를 지정할 수 있는 수조이다.요소를 추가할 때마다 용량이 충분한지 확인하고, 충분하지 않으면 용량이 1.5배로 늘어납니다
int newCapacity = oldCapacity + (oldCapacity >> 1);

축소하지 않음을 삭제합니다. 만약 수조가 한 번 큰 확장을 한 후, 후속으로 몇 개의 공간만 사용하면 사용할 수 있습니다.
/**
     *                     ,     。
     */
    public void trimToSize() {
        modCount++;
       //        
        int oldCapacity = elementData .length;
       //                      ,     
        if (size < oldCapacity) {
            elementData = Arrays.copyOf( elementData, size );
       }

용량을 줄이다ArrayList 내부에서 대상의 인용을 저장하기 위해 고정된 그룹 이외에 추가할 때 그룹을 확장하고 1.5배 크기의 메모리를 새로 신청하여 원래의 그룹을 복사한 새로운 신청 그룹에 추가해야 한다.이로써 빈번하게 증가하는 장면에서 빈번하게 증가하는 시간 비용을 피하기 위해 충분한 수조 용량을 한꺼번에 신청하는 것이 가장 좋다.

좋은 웹페이지 즐겨찾기