1 개의 개체 (대다수) 또는 여러 개체 (일부 시간) 중 하나 일 수있는 데이터를 읽어야한다고합니다.ArrayList 용량 추측과 사용되지 않은 값 사이의 상반 관계?
내가 할 경우 : 데이터베이스에서로드 만 한 물체가있을 때
List list = new ArrayList<Object>(1);
... loop over the loaded object(s) and add it/them to the list...
이 잘 시간의 대부분을 내게 될 것입니다. 그러나 초기 목록을 확장해야하는 덜 일반적인 시나리오로 가정하면 작업이 중단 될 수 있습니다.
나는이 정말 현실 세계에 영향을 많이하지 않습니다 가정,하지만 난 다음을 계산할 수있는 방법을 궁금해 : 는내 데이터의 1 객체와 Y입니다 X %의 가정 %은 여러 개체의 목록입니다. 내 목록의 이상적인 초기 용량을 계산할 수있는 방법이 있습니까? 최소 연산 (목록 확장, 목록에 할당되었지만 사용되지 않은 필드 사용)은 어떻게됩니까?
당신이'ArrayList's'trimToSize()'방식으로 봤어을? 나는 그것이 당신에게 유용 할 것 같아요. – Ogen
"다중 객체"의 경우 객체 수에 따라 달라집니다. – talex
ArrayList는 크기가 커질수록 확장이 너무 자주 발생하지 않도록 확장합니다. 동적 배열의 크기를 늘리는 것은 "비쌉니다"하지만 메모리를 낭비하기에는 너무 비쌉니다 (메모리를 많이 사용하지 않는 한). 무엇이든 상관없이 상충 관계가있을 것입니다. 'ArrayList'의 대다수가 크기 1이 될 것이라면, 이것은 메모리와 관련이 있다면 그것을 초기화해야하는 크기입니다. 만약 메모리가 걱정이되지 않는다면, 각각의 'ArrayList'를 가능한 최대 크기로 초기화해야합니다. – Jared