Array

3 respostas
P

Como eu faço pra fazer um array dinâmico, ou seja, definido pelo usuário, tipo assim:

  • um usuario cadastrar quantos nomes ele quizer em um array (ja que eu não sei quantos nomes ele vai cadastrar, como eu declaro essa array)

desde já

OBRIGADO

3 Respostas

J

Arrays tem tamanho pre-definido e fixo, portanto, não dá pra fazer isso com array... (até dá, mas você tem que ficar recriando o array e copiando os elementos)

Use uma coleção.

ex.:

List lista = new ArrayList();

lista.add("objeto1");
lista.add("objeto2");
lista.add("objeto3");

Existem varias outras coleções alem de ArrayList, dê uma olhada na API pra ver qual é a melhor para o seu caso.

http://java.sun.com/j2se/1.5.0/docs/api/

G

É isso mesmo, crie uma coleção e adicione os objetos que você necessitar. Dessa forma você não fica “amarrado” a um tamanho fixo.

B

usando o ArrayList, vou tentar explicar detalhadamente… é bem simples:

bom, sabemos que a String é um objeto em Java. Então fazer um vetor de String’s é fazer um vetor de ponteiros que aponta para objetos (do tipo String). Portanto, vetor não é dinamico, é estático, a única forma que eu conheço de trabalhar com “vetores” dinâmicos em Java é através do ArrayList.

Vou fazer uma classe simples que manipula uma ArrayList:

.
.
.
ArrayList listaDinamica = new ArrayList(); [color=“green”]//aqui vc cria e inicializa a sua lista

/repare que listaDinamica é um objeto, ele guarda objetos do tipo Object (o pai de todos os objetos)/

//o único método que uma ArrayList possui é o .add(<objeto>), exemplo:[/color]
listaDinamica.add(cliente);
[color=“green”]//cliente é um objeto[/color]

[color=“green”]//o ArrayList possui um outro objeto que é o Iterator[/color]

Iterator i = listaDinamica(); [color=“green”]//criando o obejto Iterator e associando ele a sua listaDinamica[/color]

[color=“green”]Métodos do Iterator[/color]
i.hasNext(); [color=“green”]//verifica se existe um obejto posterior[/color]
i.next(); [color=“green”]//para avançar na lista[/color]
i.remove(); [color=“green”]//remove o objeto onde o i aponta[/color]

[color=“green”]//exemplo[/color]

while (i.hasNext()){ [color=green]//se existir o próximo objeto entre no while

clienteTemp = (Cliente) i.next(); [color=green]

System.out.println("Nome do cliente: "+clienteTemp.getNome());

}

espero ter ajudado um pouco… qualquer dúvida pode perguntar, vou tentar esclarecer melhor

Criado 11 de outubro de 2006
Ultima resposta 11 de out. de 2006
Respostas 3
Participantes 4