Não sei se aqui é o lugar certo…mas a minha duvida é…é possivel criar um array de alocação de espaço dinâmica no java?
Pesquisei no google e afins, mas não entendi da forma que estava exposta…se alguem puder me exclarecer essa duvida fico grato
Não sei se aqui é o lugar certo…mas a minha duvida é…é possivel criar um array de alocação de espaço dinâmica no java?
Pesquisei no google e afins, mas não entendi da forma que estava exposta…se alguem puder me exclarecer essa duvida fico grato
não. o que voce pode usar é uma classe de tem esse efeito, ArrayList por exemplo.
[quote=Josielplens]Não sei se aqui é o lugar certo…mas a minha duvida é…é possivel criar um array de alocação de espaço dinâmica no java?
Pesquisei no google e afins, mas não entendi da forma que estava exposta…se alguem puder me exclarecer essa duvida fico grato :)[/quote]
Arrays são sempre alocados dinamicamente com “new”, mas o tamanho deles é fixo depois que são criados. Não há um comando “redim” como há no VB, por exemplo.
Para ter um array de tamanho variável, você precisa encapsulá-lo em uma classe.
A classe ArrayList já faz isso para você.
[quote=Josielplens]Não sei se aqui é o lugar certo…mas a minha duvida é…é possivel criar um array de alocação de espaço dinâmica no java?
Pesquisei no google e afins, mas não entendi da forma que estava exposta…se alguem puder me exclarecer essa duvida fico grato :)[/quote]
Claro que dá. O Operador new serve para alocar memória dinamicamente. O resto é com sua lógica e algoritmos. Como citado acima a ArrayList já é a implementação desse algoritmo.
int i = 1;
int[] arr = new int[i];
arr = new int[++i];
arr = new int[++i];
Movido para java básico.
Outra coisa, procure dar um título descritivo para o tópico como “É possível criar arrays dinâmicos em Java?”
a pergunta dele é alocar dinamicamente como no C com malloc etc., dando o efeito de um array infinito que aumenta de tamanho conforme a nescessidade.
em java não temos essa liberdade de alocar a memoria dinamicamente desta maneira de uma olhada na implementação da classe arraylist , ela cria um novo array e copia o conteudo do antigo, dando o mesmo efeito de que objeto aumenta de tamanho, se não me engano tem um exemplo bem simples na apostila da caelum de estrutura de dados.
Como não? Você pode alocar classes dinamicamente com new, que faz exatamente o que o malloc (ou o new do C++) faz.
Essa liberdade nós temos sim.
Se quiser fazer uma lista encadeada em Java, é bem fácil.
sim o new cria os objetos na memoria, mais o que quis dizer é que não podemos manipular a memoria diretamente [quote=Josielplens]alocação de espaço dinâmica[/quote] como em c que tem que fazer na hora de alocar a memoria sizeof(int)
que tem que calcular o tamanho.
acho que entendi o sentido da pergunta errado e acabei saindo o escopo da pergunta dele.
O que o garoto está perguntando é:
É possível criar um array e depois aumentar esse array? Não é criar um novo objeto array e atribuir a variavel de referencia a esse novo objeto, mas sim aumentar o tamanho do objeto já existente a apontado por essa variável.
Não, não é possível;
Mesmo arraylist, quanto o tamanho do array chega ao máximo, cria um novo objeto, copia todos os elementos do array antigo para o novo e atribui o array novo à referencia que referenciava o array antigo.
é ficou mais claro, era isso que eu queria dizer.