Coleções - MAp

Opa, estou estudando sobre map, e implementando um código:

[code]import java.util.Iterator;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;

public class Escore implements Comparable{
private String nome;
private int pontuacao;

public Escore (){
	this(null,0);
}
public Escore(String nome,int pontuacao){
	super();
	this.nome = nome;
	this.pontuacao = pontuacao;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public int getpontuacao() {
	return pontuacao;
}

public void setpontuacao(int pontuacao) {
	this.pontuacao = pontuacao;
}
public String toString(){
	return ("pontuacao"+pontuacao+"nome"+nome);
}

public int compareTo(Escore e1) {
	  int diff = e1.pontuacao - pontuacao;  
        return diff == 0 ? nome.compareTo(e1.nome) : diff; 
	}

}[/code]

[code]import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

public class Classificacao {

Map<String, Escore> Lugar = new TreeMap<String, Escore>();


public void adicionar(String nome,Escore e){
	
	Lugar.put(nome, e);
}
public void exibir(){
		
		System.out.println(""+Lugar.keySet()+"e"+Lugar.values());
		
}

}
[/code]

Pronto eu quero Adicionar a uma map de Lugares uma String como um nome do lugar e um escore com o nome do piloto e a pontuação dele Só que na hora que eu mando rodar o resultado fica o seguinte:
=====[Interlagos, Monaco]e[pontuacao14nomeJoão, pontuacao12nomeRObson]
e eu quero que exiba assim
na ordem
interlagos pontuação 14 nome joão.
interlagos pontuação 14 nome robsno
monago pontuacao 13 nome joao.

na ordem alfabética
aqui o main:[code]
public class Main {

public static void main(String[] args) {
	

Classificacao c = new Classificacao();
c.adicionar("Monaco",new Escore("RObson", 12));
c.adicionar("Interlagos", new Escore("João",14));
c.exibir();

}}
[/code]

Troque:

return ("pontuacao"+pontuacao+"nome"+nome);

Por

return ("pontuacao "+pontuacao+" nome "+nome);

E

System.out.println(""+Lugar.keySet()+"e"+Lugar.values());

Por

for(String local : Lugar.keySet()){
     System.out.println(local + " " + Lugar.get(local);
}

Deu certo Valeu cara!

[code]public void adicionar(Escore e){
Integer qtd = 0;
if(Lugar.containsKey(e)){
qtd = Lugar.get(e);
}
qtd ++;
Lugar.put(e, qtd);

}
public void exibir(){
	for(Escore e : Lugar.keySet()){  
	     System.out.println(e + " " + Lugar.get(e));  
	}
		
}[/code]

agora estou tentando fazer a funcao pesquisa:[code]public Set pesquisar(Escore e){
Set retorno = new TreeSet();
Set perco= Lugar.keySet();
for(Escore r : perco){
retorno.add(e);

			}
		
	
	return retorno;
}

}[/code]

essa funcao era pra quando eu colocasse um Escore(campos = pontuacao e nome);
entao ela ia pesquisar no map e retornar o valor map

[code] import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

public class Classificacao {

   Map<String, Escore> Lugar = new TreeMap<String, Escore>();  
     
     
   public void adicionar(String pista,Escore e){  
         
       Lugar.put(pista, e);  
   }  
   public void exibir(){  
             
	   Set conjunto = Lugar.entrySet();
	
	Iterator i = conjunto.iterator(); 
	
	while(i.hasNext()) {
		int ai=0;
		Map.Entry me = (Map.Entry)i.next();
		System.out.print(me.getKey() + ": ");
		System.out.println(me.getValue());
	} 
             
   }  

} [/code]

deixe o Iterator fazer a iteração por voce.

o nome do Escore nao é a chave .entao coloquei pista que recebe os valore smo naco e interlagos como chaves.

não entendi e se eu quiser exibir a chave e o valor com o iterator como faço ?

vnao ta para fazer isso pois ele intera apenas os valores no mapa.

nao ententi completamente o seu problema.

a sua intençao é mostrar pista o nome e a pontuação ordenada por pista e conseguentimente por nomes ?

exemplo

pista A nome a pontos 2
pista A nome B pontos 2
pista A nome C pontos 2
pista B nome A pontos 2
pista B nome B pontos 2
pista C nome A pontos 2
pista C nome B pontos 2

Isso mesmo, a intenção é ordenar tudo…

eu inseri o conceito de modalidades na sua regra de negocio.Essa modalidade se tornou a chave de suas coleções

para fazer essa classificação conforme a duvida que voce levandou no seu ultimo post eu utilizei a interface Collections e seu metodo sort com uma classe local de anonima implementando a Interface Comparator.

Se nao entender alguma coisa manda mensagem.