TransWikia.com

Tamanho de um ArrayList

Stack Overflow em Português Asked by JBarbosa on November 30, 2020

Em Java…

  • Qual o tamanho inicial de um ArrayList?
  • Atingindo o tamanho máximo, quando ele se “expande”, seu tamanho é duplicado?

One Answer

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP