"Vetor", "Tree" e outros

10 respostas
dcbasso

Seguinte, tenho que abrir um arquivo de dados, todos os dados serão passados para uma classe que eu mesmo criei, agora meu problema é o seguinte, preciso criar um “vetor” destes dados para poder trabalhar com eles, mas como eu nunca sei quantos dados terão no meu arquivo eu não posso utilizar um vetor, certo?

Qual seria uma saida simples para meu problema… pensando que o minimo necessário é percorrer o "vetor"q que ira conter objetos da minha classe…

Obrigao pela ajuda,

10 Respostas

Bravox

vc pode usar um List

Adriano_Almeida

Utilize qualquer Collection que implemente a interface List.
Exemplo:

List<String> l = new ArrayList<String>();

while(suaCondicao) {
   l.add(dadosDoArquivo);
}
danielbussade

Olá tudo blz, é o seguinte você pode usar as coleções do Collection Framework, existem várias, que implementam as principais Interfaces List, e Set dentre outras.
Se precisa de uma coleção que aceita elementos repetidos use uma que implemente a interface List, senão use uma que implementa a interface Set segue abaixo um exemplo de cada:

Criando uma List Generics do tipo do tipo Carro com a Classe ArrayList que implementa List.

List<Carro> listaCarro = new ArrayList<Carro> ();
   //para adicionar elementos 
   listaCarro.add(objeto);
  //recuperar um objeto
   listaCarro.get(index);

Se precisar ordenar esta List use o metodo statico da classe Collections.sort(nome_da_lista);

Exemplo com conjunto :

Set<Carro> listaCarro = new HashSet<Carro> ();
   //para adicionar elementos 
   listaCarro.add(objeto);
  //saber se existe um objeto
   listaCarro.contains(o); //retorna um boolean se existir

Lembrado que um conjunto do tipo HashSet, não tem ordem, se quiser um ordenado use o TreeSet, e terá que fazer sua classe Conta implementar a interface Comparable, e reescrever o metodo compareTo com o critério de comparacao que você quiser.
Aí quando fizer um enhanced for, ela aparece ordenada, do contrário dará erro.

Espero ter ajudado.

Abraço!

quikkoo

pois é, mais simples que usar um tipo List só mesmo o vetorzão com os objetos

ViniGodoy

E lembrando, sets também não aceitam elementos duplicados.

ViniGodoy

Discordo…

No caso ele já expos o problema do vertozão. Ele não tem como saber que tamanho alocar.

Trabalhar manualmente com o vetor também não é a solução, como demonstrado nesse exemplo, que faz a exclusão de um elemento:
http://www.guj.com.br/posts/preList/71926/378464.java#378464

LPJava

ArrayList, vc pode usar. Agora se vc postar o codigo… ja ajuda…
agora antes de postar dar uma acessada no link abaixo, vai ajudar…

http://guj.com.br/posts/list/50115.java

quikkoo

Discordo…

No caso ele já expos o problema do vertozão. Ele não tem como saber que tamanho alocar.eu disse q a estrutura é simples, especificamente mais simples que List, mas nao disse pra ele usar

flw, t+

sergiolopes

Sets não aceitam elementos duplicados.

http://java.sun.com/javase/6/docs/api/java/util/Set.html

ViniGodoy

Hahahahah… que tosco. Essa era exatamente a observação que eu ia fazer.
Já tá corrigido lá em cima.

Criado 26 de outubro de 2007
Ultima resposta 27 de out. de 2007
Respostas 10
Participantes 8