Parece bobo mas ta foda

1 resposta
dicabeca
ai alguem pode me ajudar o problema deve ser no algoritimo so pode,estou debungando aki e nao vejo diferenca, tenho uma lista e concateno na com uma outra lista separado por "," e jogo dentro d uma outra lista, fiz uma funcao Ligacoes(y,x)de teste pra ver c os dados batem e to printando na tela nao vejo diferenca e nao sei pq nao esta alimentando minha variavel k?
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List; 
import java.util.HashMap;
import java.util.Map;
public class grafo implements Serializable {
	
	private static final long serialVersionUID = 1L;
	public static Map<String,Double> p = new HashMap<String,Double>();
	public static List<String> lx = new ArrayList<String>();
	public static List<String> ly = new ArrayList<String>();
	public static List<String> tab = new ArrayList<String>();
	public int tam;
	public String k;
	public boolean liga;
	public grafo()
	 {
	 	 p.put("A",235.000);
		 p.put("B",321.000);
		 p.put("C",87.000);
		 p.put("D",102.000);
		 p.put("E",46.500);
		 p.put("F",647.000);
		 
		 lx.add("A");
		 lx.add("B");
		 lx.add("C");
		 lx.add("D");
		 lx.add("E");
		 lx.add("F");
		 
		 ly.add("A");
		 ly.add("B");
		 ly.add("C");
		 ly.add("D");
		 ly.add("E");
		 ly.add("F");
		 
	  
	
   	  tab.add(ly.get(0) +","+ lx.get(2));   	 
   	  tab.add(ly.get(1) +","+ lx.get(2));   	 
   	  tab.add(ly.get(1) +","+ lx.get(5));   	 
   	  tab.add(ly.get(2) +","+ lx.get(0));   	 
   	  tab.add(ly.get(2) +","+ lx.get(1));   	 
   	  tab.add(ly.get(2) +","+ lx.get(3));   	 
   	  tab.add(ly.get(3) +","+ lx.get(2));   	 
   	  tab.add(ly.get(3) +","+ lx.get(4));   	 
   	  tab.add(ly.get(4) +","+ lx.get(3));   	 
   	  tab.add(ly.get(4) +","+ lx.get(5));   	 
   	  tab.add(ly.get(5) +","+ lx.get(1));
   	  tab.add(ly.get(5) +","+ lx.get(4));
   	 
	 }

   public String Ligacoes(String y,String x)
   { 
   	 String z = y +","+ x;
   	 
   	 for(int i=0;i < tab.size();i++)
   	  {
   	  	if(z == tab.get(i))
   	  	k = "Certo";
   	  }
   	 return z+"/"+tab.get(0)+"/"+k;
   }
   public int v2()
   {
   	
   	 	return tab.size();
   	  
   }
   public int v()
   {
   	 tam = p.size();
   	 return tam;
   }
   public void AdicionaVertice(String x,Double y)
   {
	 p.put(x,y);
   }
   public void RemovoVertice(String x)
   {
   	 p.remove(x);
   }   
 
 public class visualizacaoGrafo extends JPanel
   {
   	
   	private static final long serialVersionUID = 6994470617748035985L;
   	
    
	 	protected void paintComponent(Graphics g)
	 	 {
	 	 	// Não se pode mudar o estado do objeto g, então fazemos uma cópia dele.
	 		Graphics2D g2d = (Graphics2D) g.create();
	 		
	 		g2d.setColor(Color.black);
	 		g2d.drawArc(15,35,80,80,0,360);
	 	 }
 	 
   }
 
   public static void main(String args[])
   {
   	 grafo g = new grafo();
   	 System.out.println(g.Ligacoes("A","C"));
   }
  
}

1 Resposta

C

As comparações envolvendo String devem ser feitas através do método equals.

Experimente mudar a sua linha do if para:

if(z.equals(tab.get(i)))

Acredito que assim funcione.

Criado 28 de maio de 2007
Ultima resposta 28 de mai. de 2007
Respostas 1
Participantes 2