Stack Overflow em Português Asked by JBarbosa on November 30, 2020
Em Java…
ArrayList
?O capacidade inicial é de 10 elementos, se não for especificada na sua criação. E quando atinge o máximo ele é realocado transparentemente (implementação interna) com o dobro da capacidade atual se a nova capacidade for suficiente. Mas note que isto é detalhe de implementação, então não conte com isto, uma versão diferente da biblioteca pode fazer diferentemente.
A duplicação da capacidade ao invés de alocar só a necessidade é feita para minimizar um problema semelhante ao do Shlemiel the Painter's algorithm
onde uma nova pequena adição ao ArrayList
já produziria uma nova realocação, tornando a operação cada vez mais lenta. O algoritmo troca uma quantidade exagerada de realocações por um possível desperdício de memória.
Tem algo falando disto no SO aqui e aqui. A documentação oficial diz que a capacidade inicial é 10, então isto provavelmente não mudará, documentou, vira contrato :)
Correct answer by Maniero on November 30, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP