Pegar Valores repetidos no Map

4 respostas
dicabeca

Pessoal to tentando pensar em alguma maneira mas ta dificil v c alguem pode me ajudar,na funcao v2(),tenho q fazer algum metodo q qnd eu der um t.get(“B”) me retorne o “C” e o “F”,e nao so o “F” pos e o ultimo alocado na memoria.

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.*;
import java.io.Serializable;
import java.util.*;


public class grafo implements Serializable {
	
	private static final long serialVersionUID = 1L;
	public static Map<String,Double> p = new HashMap<String,Double>();
	public static Map<String,String> t = new HashMap<String,String>();
	public int tam;
	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);
		 
		 t.put("A","C");
		 t.put("B","C");
		 t.put("B","F");
		 t.put("C","D");
		 t.put("D","E");
		 t.put("E","F");
	 }

   public String v2()
   {
   	 return t.get("B");
   }
   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();
   	 //JOptionPane.showMessageDialog(null,g.v2());
   }
  
}

4 Respostas

fabiozoroastro

Quando você faz.

map.put("1", "Fabio");
map.put("1", "dicabeca ");
System.out.println(map.get("1"));

Vai imprimir dicabeca, pois o map não pode ter mais de um registro com chaves iguais. No seu caso ele ele está exibindo o F, pq foi o último que você fez o put.

Abraço.

dicabeca

po isso eu ja sei, eu quero saber qual metodo eu posso usar para colocar qnts indices repetidos quizer e me retornar todos os q estao associados

ViniGodoy

Nesse caso, você não pode usar um map.

O ideal é que você crie sua própria estrutura de dados, se você quer representar um grafo ou uma árvore BSP.

PS: Retire o URGENTE! do seu tópico, não é muito educado colocar apelos como esse no forum.

T

utilize colecoes no mapa ao inves dos valores…
algo como:

Map&lt;String, List&gt;&lt;String&gt;&gt mapa ...
Criado 25 de maio de 2007
Ultima resposta 25 de mai. de 2007
Respostas 4
Participantes 4