java 컨테이너 설명 1 (Array List)
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배 크기의 메모리를 새로 신청하여 원래의 그룹을 복사한 새로운 신청 그룹에 추가해야 한다.이로써 빈번하게 증가하는 장면에서 빈번하게 증가하는 시간 비용을 피하기 위해 충분한 수조 용량을 한꺼번에 신청하는 것이 가장 좋다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.