Dúvida urgente na Busca e Edição de elementos em ArrayList

4 respostas
J

Boa noite pessoal, sei que ja estou enxendo o saco com minhas duvidas… mas essa é a ultima uhahauahuauahua

negocio é o seguinte, eu tenho 2 arrayList, um deles contem como elementos objetos do tipo Arestas, aonde Arestas tem os seguintes atributos int fonte, int destino, no outro arrayList eu tenho objetos do tipo Contador, onde eu tenho atributos int idVertice, int quantidade… até entao eu preciso fazer o seguinte codigo que me retorne a quantidade de arestas para cada vertice…

for(i=0; i<arestas.size(); i++){

Arestas aresta = (Arestas) aresta.get(i); // lembrando que atributos de Arestas são ( int fonte, int destino)

agora eu preciso pegar este objeto aresta, pegar o valor do atributo fonte e o valor do atributo destino.

buscar dentro do ArrayList contador o indice correspondente ao atributo fonte, somar + 1 no atributo quantidade do objeto do tipo Contador
buscar dentro do ArrayList contador o indice correspondente a destino, somar +1 no atributo quantidade do objeto do tipo Contador

}

to com dificuldade de fazer esta busca e incrementar o contador :frowning:

Obrigado a todos pela compreensão, vcs são mais doque mestres :wink:
:)))

4 Respostas

A

Boa noite, não sei se entendi direito, mas pergunto:

Se você colocar <NomedoArray>.trimToSize    para eliminar as posições do array que não foram utilizadas, e depois usar o size() para contar com quantas posições está o vetor não resolve?
alberto_ribeiro

o que liga o seu objeto aresta com o contador ?

ex:

ArrayArestas
[0] Aresta
[1] Aresta

ArrayContador
[0] Contador
[1] Contador

como vocë sabe que a Aresta 1 é referente ao Contador X ?

ou a aresta na posição 1 corresponde ao Contador posição 1 e assim por diante…

J

Ola boa noite, na verdade é pq esta como padrao, 0,1,2,3,4,5,6,7, coloco isso na hora de criar as vertices, eis o codigo que eu “Tentei” mas nao deu certo… mas entao… os objetos Vertices tem os atributos int idvertice, String nome, String sexo, entao eu quero controlar pelo idvertice

public static void verificaCircuitoEuleriano(){

if(vertices.size() > arestas.size()){
	JOptionPane.showMessageDialog(null, "Grafo não possui circuito EULERIANO",null, JOptionPane.INFORMATION_MESSAGE);
}else{
   ArrayList<Contador> contador = new ArrayList<Contador>();
   for(int i = 0; i<vertices.size();i++){ // aqui alimento o arraylist contador com o mesmo tanto de vertices onde seus respectivos "indices" contem a mesma posição de ambos vetores
			
			contador.add(new Contador(i,0)); 		
		}
		
		for(int i = 0; i<= arestas.size();i++){
			Arestas aresta = (Arestas) arestas.get(i);				
			int indiceFonte = contador.indexOf(aresta.getFonte());
			
		Contador auxiliar = (Contador) contador.get(indiceFonte);
		auxiliar.setContador(auxiliar.getContador() + 1);
		JOptionPane.showMessageDialog(null,auxiliar.getContador());
		contador.set(indiceFonte, auxiliar);
		
		
		int indiceDestino = contador.indexOf(aresta.getDestino());
		
		Contador auxDestino = (Contador) contador.get(indiceDestino);
		auxDestino.setContador(auxDestino.getContador() + 1);
		contador.set(indiceDestino, auxDestino);
			
		}
	}
J

Muito obrigado para quem tentou me ajudar!!! :slight_smile:

felizmente na raça consegui fazer a parada funcionar, mas ainda tem um pequeno erro… quando o Vertice tem mais que duas arestas ta dando erro
uihsauidhasdsa

mais tarde eu vejo isso :slight_smile:

obrigado galera !!!

int indiceDestino = contador.indexOf(aresta.getDestino());

isto aki estava tudo errado.
diuashduisahudasi
oke o sono nao faz com a pessoa PQP !

Criado 15 de novembro de 2010
Ultima resposta 16 de nov. de 2010
Respostas 4
Participantes 3