Map e HashMap

Pessoal, estou tentando imprimir um arquivo Pdf a partir de um aplicativo desktop.
Pesquisei e baixei o Ireport e o JasperReport.
E tem uma parte do código em que eu tenho de passar como parâmetros
o que deve ser impresso no arquivo pdf com a seguinte instrução:

Map parameters = new HashMap(); 
parametes.put(key, value);

Depois:

JasperFillManager.fillReportToFile( ".jasper", parameters, jrRS );

Se alguém puder me ajudar e explicar o que por no lugar de key e value,
o que são o Map e o HashMap.

Olá…
Você já deu uma olhada na API? Está bem explicadinho por lá…

No relatorio voce tem alguns campos que voce pode passar o valor via Java, esses valores voce passa por esse HashMap

Caso no relatorio voce tenha um campo tipo:usuario e dataLimite
no Map voce vai adicionar algo assim

Map parameters = new HashMap();   
parameters.put("usuario", "Marky"); 
parameters.put("dataLimite","30/01/2008");

E passando esse mapa os dados vao ser impressos no relatorio.
Se no relatorio voce nao precisar de nenhum campo via parametro voce nao precisa do put(key, value) e passa apenas o HashMap vazio

Map parameters = new HashMap();   
JasperFillManager.fillReportToFile( ".jasper", parameters, jrRS );

No caso, eu preciso prencher com dados de uma consulta à um BD.
Então eu coloco:

ResultSet rs;
rs.executeQuery("sqlQualquer");

Map parameters= new HashMap();
parameters.put("Cliente", rs.getString(1));

JasperFillManager.fillReportToFile( ".jasper", parameters, jrRS );  

No caso parameters.put(1, 2)
o 1 eu defino no relatório, como nome do campo?

E outra pergunta.
Como eu defino o caminho do .jasper

Eu já tentei
C:\Users…\report1.jasper - Dá erro no caracter “”
C:\Users\…\report1.jasper
report1.jasper

e nenhum dá certo…
Têm alguma dica?

No relatorio tem o campo por parametro o campo estatico e um terceiro que nao lembro o nome que é o que vem da Query.

Os campos por parametros vem por esse HashMap
os campos estaticos são escritos diretos no relatorio quando cria ele
os outros campos que é esse que voce quer fazer pelo cliente é o DataSource do relatorio.

Para passar o caminho usa //

Isso:

ResultSet rs;
rs.executeQuery("sqlQualquer");

Map parameters= new HashMap();
parameters.put("Cliente", rs.getString(1));

JasperFillManager.fillReportToFile( ".jasper", parameters, jrRS );  

Eu acho que voce quer fazer assim:

ResultSet rs;
rs.executeQuery("sqlQualquer");

JRDataSource jrRS = new JRResultSetDataSource(rs);

Map parameters= new HashMap();

JasperFillManager.fillReportToFile( ".jasper", parameters, jrRS );