Equals

5 respostas
S
public class WeightedEdge {

	int weight; //peso do arco

	Vertex init, end;  //vértice de inicio e fim do arco
	
	
	//cria um arco com inicio em vo, fim em vd e peso p 

	public WeightedEdge(Vertex vo, Vertex vd, int p){
		this.init = vo;
		this.end = vd;
		this.weight = p;
	}
	
	// retorna true se o objecto ref arco igual,false caso contrário
	//2 arcos são iguais se ligarem os mesmos vértices

	public boolean equals(Object o){
		return(o.equals(this));
	}
       }

Eu tou com uma dúvida, gostava de saber se posso comparar o objecto com o arco assim.. sabendo que apenas são considerados iguais se o objecto ref arco e 2 arcos são iguais se ligarem os mesmos vertices.
Se estiver errado gostaria de ajuda para qual a solução..
Desde já o meu muito obrigado.

5 Respostas

S

vc está querendo usar isso para comparar dois objetos:

public boolean equals(Object o){ 
      return(o.equals(this)); 
}

mas vc tem um comentario assim:

//2 arcos são iguais se ligarem os mesmos vértices

então eu acho que vc num tem que comparar a referencia do objeto e sim seus valores

public boolean equals(Object o) {
  if (o.instanceof(WeightedEdge)) {
    WeightedEdge we = (WeightedEdge) o;
    if ((this.init == we.init) && (this.end == we.end)
      return true;
  }

  return false;
}
S

muito obrigado… nem sei como agradecer !!

percebi direitinho… é isso mesmo…

mas há um problema, ele me dá erro kuando eu faço instanceOf(WeightedEdge) , pk ele da erro no weightedEdge ?
Tenho que criar uma instância dessa classe ?

I
if (o instanceof WeightedEdge) {
    //...
}
S

já está resolvido… obrigado a todos era um problema simples

if (o instanceof WeightedEdge) {

era só assim…

S

foi mal … fiz rapidão aqui e nem reparei.

Criado 3 de maio de 2006
Ultima resposta 3 de mai. de 2006
Respostas 5
Participantes 3