alguem pode me responder c a classe Map aceita ter 3 dimensoes ou so pode duas,c puder que metodo posso fzr para ter uma estrutura com 3 ou + dimensões.
Map<Object, Object[]> map;
Resolve seu problema não?
Se não me engano, todas as classes que implementam a interface Map são 2D. Vc pode tentar fazer o que o nosso amigo sugeriu ou pegar a API 3d do Java. Lá tem uma classe chamada Matrix3d que deve resolver seu problema.
link pro javadoc da classe Matrix3D
http://download.java.net/media/java3d/javadoc/1.5.0/index.html
link da pagina da API
https://java3d.dev.java.net/
eu resolvi fzr varias linhas para cada associacao, so nao sei como eu vou fzr os “join” hehee, qnd quizer associar os dados, c tiver uma ideia pode me falar
Como assim? Você fez uma Lista pra cada dimensão sem qualquer associação entre as listas?
vou colocar o codigo aki,o q eu preciso e o seguinte da pra ver q cada ponto esta associado a um numero, so q eu tenho q associar os pontos com eles mesmos, a associacao seria assim:
A-C
B-C-F
C-B-D
D-C-E
E-D-F
F-B-E
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 String AC,BC,BF,CD,DE,EF;
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());
}
*/
}
[quote=dicabeca]…, so q eu tenho q associar os pontos com eles mesmos…
[/quote]
Ainda não entendi muito bem seu problema. Você já está fazendo a assiciação entre os pontos na HashMap t. O problema é fazer uma associação do tipo B-C-F?
B-C-F, num grafo, significa que existe uma aresta BC e existe uma aresta CF.
Então é só vc inserir uma assiciação BC e depois uma CF.
Um problema que consegui enchergar olhando teu codigo é que cada ponto só pode estar associado a 1 único ponto e isso não é verdade num grafo.
Imagina que tua Hash t tá vazia.
da vc faz isso
01 t.put("A","C");
02 t.put("A","B");
na linha 1, tua Hash vai ficar com uma entrada {“A”,“C”}. Quando vc executar a linha 2 ela vai ficar com {“A”,“B”}, pois só pode existir um valor pra chave “A” na hash. No caso de um grafo, ao final da 2 seu mapa deveria ficar {“A”, “C” e “B”} indicando que A está ligado com C e A está ligado com B.