Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre arrays e suas referências

Olá, tenho um dúvida.. Quando criamos um array, de 3 posições por exemplo.. O computador vai pegar 3 posições na memória um do lado do outro, correto? As referências dessas posições reservadas pelo array seriam tipo: [Ref: 4][Ref: 5][Ref: 6] (Obs: Não estou me referindo ao índice dos arrays onde sempre começa do 0.) ou o computador pega posições de memória aleatórias e faz cada quadradinho desse [ ] apontar para essas posições? Tipo [Ref: 4][Ref: 20][Ref: 32]

Estou perguntando isso porque, por exemplo: Se caso o computador crie posições de memória um do lado do outro, e ai eu escrevo a seguinte linha

array[Ref: 4] = novoObjeto

Eu não estaria atribuindo uma nova referência para essa posição no array? E caso eu faça isso para todas as posições do array, isso significaria que esse array não estaria mais ordenado, referencialmente falando, certo? Isso não tiraria o propósito do array? Ou prejudicaria a performance do código, de alguma forma, sei lá, acho que estou viajando muito, mas espero que entendam o que eu quis dizer...

2 respostas
solução!

Olá Icaro, tudo certo?

Isso pode acontecer sim, mas não da forma que você descreveu (acho que entendi sua questão).

E é por isso que existem estruturas de dados mais complexas e com a performance melhor que o Array. Mas como o que você está colocando dentro deste índice do Array é apenas uma referência para o novoObjeto, o array continuará no mesmo lugar na memória, mas a o índice do array em questão apontará para outro lugar da memória. Então a leitura do array, no fim das contas, será feita sequencialmente naquele espaço de memória e pegará os valores referentes àqueles índices.

Espero que tenha ajudado.

Bons estudos!

Entendi! Muito obrigado, Fabiano!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software