Duvida em Como fazer um ArrayList de objetos

3 respostas
J

Olá boa noite a todos, desculpa pela ignorancia, pois estou começando agora com java… a dúvida é a seguinte:

Eu criei um ArrayList que vai conter em seus indices elementos(objetos) do tipo Vertices, mas na hora que eu vou listar os objetos do meu ArrayList está listando somente o ultimo elemento. oque fazer? :frowning:

Vertices vertice = new Vertices();
	for(int i=0;i<vertices.size();i++){
	
	vertice = vertices.get(i);
	JOptionPane.showMessageDialog(null,vertice.getNome(),null, JOptionPane.INFORMATION_MESSAGE);	
	}

Obrigado desde já a todos.

uma coisa que surgiu na minha cabeça agora é, finalizar o objeto vertice. vou tentar, mas mesmo assim espero ajuda :slight_smile:

3 Respostas

gqferreira

Boa noite.

O seu objeto vertices é um arraylist?
Voce pode assegurar que o seu arraylist tem mais de um objeto?
Como voce preencheu o seu arraylist?

Desculpa o monte de perguntas, mas preciso tirar as duvidas da situacao ^^

Uma sugestao... Troque:
for(int i=0;i<vertices.size();i++){ 

vertice = vertices.get(i); 
JOptionPane.showMessageDialog(null,vertice.getNome(),null, JOptionPane.INFORMATION_MESSAGE);	
}

por:

for(Verticce vertice : vertices){ 
   JOptionPane.showMessageDialog(null,vertice.getNome(),null, JOptionPane.INFORMATION_MESSAGE);	
}

Assim voce nao precisa de contador. O que esta acontecendo nesse codigo? Eu estou fazendo um for each, indico o arraylist e falo que cada vez que passar um item, ele ira "cair" dentro do objeto vertice. Assim nao preciso ficar contando, nao crio uma outra variavel, em cada volta do laco, o objeto vertice sera um item do arraylist vertices.

edufera10
jonathanrodrigues:
Olá boa noite a todos, desculpa pela ignorancia, pois estou começando agora com java... a dúvida é a seguinte:

Eu criei um ArrayList que vai conter em seus indices elementos(objetos) do tipo Vertices, mas na hora que eu vou listar os objetos do meu ArrayList está listando somente o ultimo elemento. oque fazer? :(

Vertices vertice = new Vertices();
		for(int i=0;i<vertices.size();i++){
		
		vertice = vertices.get(i);
		JOptionPane.showMessageDialog(null,vertice.getNome(),null, JOptionPane.INFORMATION_MESSAGE);	
		}

Obrigado desde já a todos.

uma coisa que surgiu na minha cabeça agora é, finalizar o objeto vertice. vou tentar, mas mesmo assim espero ajuda :)

Eu criei um ArrayList
//isso é um array list
List<Vertices> lista = new arrayList<Vertices>();

Vertices vertice = new Vertices();
vertice.setNome("nome que você quer");
lista.add(vertice);

                             
		for(int i=0;i<lista.size();i++){
		
		vertice = lista.get(i);
		JOptionPane.showMessageDialog(null,vertice.getNome(),null, JOptionPane.INFORMATION_MESSAGE);	
		}
J

Boa noite gqferreira

Classe FrmVertices // neste metodo da classe FrmCriaVertice irei pegar dados digitados pelo cliente e fazer um objeto de Vertices, apos instanciar o objeto de Vertices, irei adiciona-lo num ArrayList que esta em outra classe.

private void EventoClicar(java.awt.event.MouseEvent evt) {
Vertices vertice = new Vertices();

vertice.setId(Integer.parseInt(txtID.getText()));
 vertice.setNome(txtNome.getText());
 vertice.setSexo(txtSexo.getText());
 
 GerarArquivo.vertices.add(vertice);
  limpaCampos();
}

Classe GeraArquivo// neste metodo da classe GeraArquivo, vou tirar as informaçoes do Array de Vertices e jogar dentro de um Array de String para enviar ao Arquivo.txt //peço que nao liguem pra o ((char)34) descobri hoje que poderia usar apenas ‘\n’ hahaha ao inves de pegar o codigo ASCII. pois como todos nos sabemos " é um caracter reservado.

public ArrayList getVertices(){

Vertices vertice = null;

ArrayList texto = new ArrayList();
for(int i=0;i<vertices.size();i++){
	
	vertice = (Vertices) vertices.get(i);
	String auxiliar = "<node id="+((char)34)+vertice.getId()+((char)34)+">" +
			"<data key="+((char)34)+"name"+((char)34)+">"+vertice.getNome()+"</data>"
			+"<data key="+((char)34)+"gender"+((char)34)+">"+vertice.getSexo()+"</data></node>";
	
	texto.add(auxiliar);
		
	JOptionPane.showMessageDialog(null,vertice.getNome(),null, JOptionPane.INFORMATION_MESSAGE); 
	
	}

public void GravarArquivo(String nome) throws IOException{

File arquivo;
	arquivo = new File(nome);
	

	FileOutputStream manip = new FileOutputStream(arquivo);
	manip.write(getCabecalho().getBytes());
	
	
	
	for(int i=0;i<getVertices().size();i++){
		ArrayList<String> texto = getVertices();
		String txt = (String) texto.get(i);
	
	manip.write(txt.getBytes());
	
	}
	manip.close();
			
	}

só falando por falar, estou fazendo um arquivo .txt com codigo XML para utilizar a API Prefuse, para gerar grafos =) e MUITO OBRIGADO pela ajuda galera, estou conseguindo! antes que eu me esqueça, resolvi o problema deste tópico, mas estou com problemas para fazer descer para a linha de baixo no arquivo, a cada objeto texto.

OBRIGADO novamente galera!
tudo de bom a todos!

Criado 7 de novembro de 2010
Ultima resposta 9 de nov. de 2010
Respostas 3
Participantes 3