Imprimir HasMap

Boa noite Pessoal,

Estou tentando imprimir um Hash do tipo:

HasMap<String,Automato>

onde Automato é uma clase com seus setters e getters.

Como eu faço para ver o que foi inserido dentro deste HashMap???

Este é codigo que eu estou trabalhando e o método varredura() é o que eu estou tentando implementar e não consigo??? O que devo fazer???

[code]package compilador;

import java.util.*;
import compilador.Argumento;
import javax.swing.JOptionPane;

public class Compilador{

HashMap<String,Argumento> mapaCadeias;

Argumento argumento = new Argumento();

ManipArquivo mArq = new ManipArquivo();  

Automato automato = new Automato();   

String cadeia = "";

String tipoCadeia = "";

public Compilador() {
        mapaCadeias = new HashMap<String,Argumento>();
}

public void compilar(String caminho) {
        // Lê o arquivo texto pra um HashMap
        HashMap linhaLida = mArq.lerArquivo(caminho);

        for (int numLinha = 0; numLinha < linhaLida.size(); numLinha++){

            // Recupera o texto linha a linha
            String textoLinha = (String) linhaLida.get(numLinha);
            
             // Passamos o texto para Tokenizer para ser lido palavra por palavra
            StringTokenizer st = new StringTokenizer(textoLinha);               

            while (st.hasMoreTokens()){     
                                    
                cadeia = st.nextToken();
                
                tipoCadeia = automato.reconhecerCadeia(cadeia);
                
                argumento.setCadeia(cadeia);
                argumento.setIdentificador(tipoCadeia); 
               //argumento.setQuantidade(1); 
                argumento.setLinhasOcorrencia(numLinha+1);
                
                mapaCadeias.put(cadeia, argumento);
                
            }
      }

}

public void varredura(){
System.out.println(mapaCadeias.get(automato));
// System.out.println(mapaCadeias.values()); //Aqui pega o endereço de memória
}

}[/code]

Você precisa sobrescrever o método equals() da classe que quer “imprimir”.

Editado - Desculpe, escrevi errado o nome do método. Correção:

Você precisa sobrescrever o método toString() da classe que quer “imprimir”.

Como assim sobrescrever o método equals()???

Nao entendi

Olha um exemplo simples:

package exemplos.guj;

public class ClasseDemo {
		
	public String atributoA; 
	public String atributoB;
	
	public ClasseDemo(String atrA, String atrB) {
		this.atributoA = atrA;
		this.atributoB = atrB;
	}
	
	//Aqui está a sobrescrita do método toString
	public String toString() {
		StringBuffer sb = new StringBuffer();
		sb.append("Valor do atributoA = ");
		sb.append(this.atributoA);
		sb.append("\n");
		sb.append("Valor do atributoB = ");
		sb.append(this.atributoB);
		return sb.toString();
	}

}
package exemplos.guj;

public class ClasseTeste {
	
	public static void main(String[] args) {
		ClasseDemo demo1 = new ClasseDemo("1", "2");
		ClasseDemo demo2 = new ClasseDemo("3", "4");
		
		System.out.println(demo1.toString());
		System.out.println(demo2.toString());
	}

}

Valeu vou fazer aqui

Obrigado

oi ai esta meu codigo

[code] import java.io.*;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
//import javax.swing.JOptionPane;

    public class Dados{             
               
          
        //"args" é um array de String onde cada elemento é um argumento passado pela linha de comando momento na "inicialização" da execução.  
        public static void main(String[] args){             
              
              
           Map<Integer, List<String>> mapLines= new HashMap<Integer, List<String>>();       
         try {             
           //leitura do ficheiro, prepara-o para ser aberto  
           BufferedReader in = new BufferedReader(new FileReader("conteudo.txt"));             
           String str;         
           int i = 0;         
           //vai percorrer todo o ficheiro  
           while((str = in.readLine()) != null)             
           {                   
               if(str.startsWith("#"))  
               {                   
                   str= "";                   
               }                   
               else{     //esta a dividir a frase em varias strings imprimindo o seu resultado  
                    List<String> values = new ArrayList<String>();       
                        String words[] = str.split(";");           
                        for(String word : words) {           
                            values.add(word);   
                            System.out.println(word);  
                        }       
                        mapLines.put(i, values);       
                        i++;       
               }     
         }// fim do while                             
           in.close();             
       }  catch (IOException e){             
           // possiveis erros são tratatos aqui   
           //JOptionPane.showMessageDialog(null, this.word, "NÂO FOI POSSÍVEL ABRIR O SEU FICHEIRO", JOptionPane.ERROR_MESSAGE);    
           System.out.println("ERRO-->NÃO FOI ENCONTRADO O SEU FICHEIRO DE DESTINO,TENTE DE NOVO");          
       }        
       // Apresenta o contéudo do Map       
       Map<Integer, List<String>> m = new HashMap<Integer, List<String>>();       
       for(Integer key : m.keySet()) {       
           for(String word : m.get(key)) {       
               System.out.println(word);       
           }       
       }                
       }   
        public static void main2(String[] args){             
              
              
            Map<Integer, List<String>> mapLines= new HashMap<Integer, List<String>>();       
         try {             
                    
           BufferedReader in2 = new BufferedReader(new FileReader("conteudo2.txt"));             
           String str;         
           int i = 0;         
           while((str = in2.readLine()) != null)             
           {                   
               if(str.startsWith("#"))                   
               {                   
                   str= "";                   
               }                   
               else{     //esta a dividir a frase em varias strings  
                        List<String> values = new ArrayList<String>();       
                        String words[] = str.split(" ");           
                        for(String word : words) {           
                            values.add(word);  
                            System.out.println(word);  
                        }       
                        mapLines.put(i, values);       
                        i++;       
               }     
         }// fim do while                             
           in2.close();             
       }  catch (IOException e){             
           // possiveis erros são tratatos aqui    
           System.out.println("ERRO-->NÃO FOI ENCONTRADO O SEU FICHEIRO DE DESTINO,TENTE DE NOVO");  
       }        
       // Apresenta o contéudo do Map       
       Map<Integer, List<String>> m = new HashMap<Integer, List<String>>();       
       for(Integer key : m.keySet()) {       
           for(String word : m.get(key)) {       
               System.out.println(word);       
         
            }     
  
        }  
    }  
}  

[/code]

e tenho por exemplo este ficheiro

view plaincopy to clipboardprint?

[code]961234567 253883377 24:05:2011 10:30:10 068 16 13  
963456789 253883355 28:05:2011 12:15:17 088 12 09  
963456789 253883377 29:05:2011 17:00:00 120 14 11  
969876666 253883377 30:05:2011 10:05:34 070 11 09  
961234567 253883377 31:05:2011 22:30:05 066 14 11  
961234567 253883377 02:06:2011 14:19:41 076 15 13  
963456789 253883377 05:06:2011 11:33:34 085 07 06  [/code]

e queria que fosse pedido ao utilizador que dados e que ele quer imprimir. por exemplo…pedirmos para imprimir todos os dados com o numero 961234567

abraços