List - Ta F..... ajuda

4 respostas
dicabeca
ai alguem pode me ajudar ja postei mais acho q nao postei bem,tenho uma classe grafo ta funcionando rendondo uma blz,retorna o valor 6 na funcao sizeLista() e ta certo,mas so rodando nela mesma,qnd vou fzr qualquer outra classe e pegar os valor retornados pela minha classe grafo os valores vem em dobro ou seja 12.
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 k;
	public boolean liga;
	public String combo[];
	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 List MostraGrafo()
	{
		return tab;
	}	
	public int sizeLista()
	{
		return lx.size();
	} 	 
	public List lista()
	{
		return lx;
	}	

   public boolean Ligacoes(String y,String x)
   { 
   	 String z = y +","+ x;
   	 k = 0;
   	 for(int i=0;i < tab.size();i++)
   	  {
   	  	if(z.equals(tab.get(i)))
   	  	k = 1;
   	  }
   	 if(k > 0)
   	  return true;
   	 else
   	  return false;	 
   }
   
   public void AdicionaVertice(String x,Double y,String z)
   {
	 p.put(x,y);
	 lx.add(x);
	 ly.add(x);
	 tab.add(x+","+z);	 
   }
   public void RemovoVertice(String x)
   {
   	 p.remove(x);
   }   
 
  
   public static void main(String args[])
   {
   	 grafo g = new grafo();
   	 System.out.println(g.sizeLista());//g.Ligacoes("A","C"));
   }
  
}

4 Respostas

dicabeca

sao varias funcoes q chama esse grafo,eu posso adicionar mais pontos na execucao do me programa,so nao entendi o “*6”.

dicabeca

Bussunda eu entendi o q vc falou,e realmente deu certo mas precisa ser estatico pq qnd eu inserir um ponto eu tenho q associalo a um outro ponto, e qnd voltar na mesma funcao eu posso inserir outro ponto associando com o anterior q eu acabei de inseri.

B

vc por um acaso nao esta criando mais de um grafo nao?

lx é estatico

o sizeLista() vai retornar numero de grafos*6

pq vc precisa dele estatico?

B

cada vez que voce cria um grafo vc da 6 adds em lx
o que acontece é o seguinte
sendo lx estatico só existe um lx que todas as instancias de Grafo compartilham
sendo assim se vc criar 3 instancias de Grafo

na primeira o sizeLista vai retornar 6
na segunda vez ao chamar o construtor de Grafo novamente vc adiciona mais 6 elementos em lx e o sizeLista retorna 12
na terceira adicona de novo mais 6 e retorna 18

o lx nao precisa ser estatico pra adicionar mais elementos durante a execução nao

Criado 29 de maio de 2007
Ultima resposta 29 de mai. de 2007
Respostas 4
Participantes 2