Ref.: Iterator - Obtendo seu índice

Boa tarde,

Dado o código abaixo:

            for (Iterator it = lhmAtributosClasse.keySet().iterator(); it.hasNext(); ) {
                String strNomeAtributo = new String(it.next().toString());
                
                pstmt.setString(???, this.TrataDadosAGravar(lhmAtributosClasse.get(strNomeAtributo)));
            }

Como fazer para o obter o índice do Iterator?

Desde já agradeço.

[quote=prsantos]Boa tarde,

Dado o código abaixo:

            for (Iterator it = lhmAtributosClasse.keySet().iterator(); it.hasNext(); ) {
                String strNomeAtributo = new String(it.next().toString());
                
                pstmt.setString(???, this.TrataDadosAGravar(lhmAtributosClasse.get(strNomeAtributo)));
            }

Como fazer para o obter o índice do Iterator?
[/quote]

Não tem como. Vc tem que criar uma variável e ir incrementando.

            int i =0;
            for (Iterator it = lhmAtributosClasse.keySet().iterator(); it.hasNext(); i++) {
                String strNomeAtributo = new String(it.next().toString());
                
                pstmt.setString( i ,  this.TrataDadosAGravar(lhmAtributosClasse.get(strNomeAtributo)));
            }

E outra dica, itere entrySet e não use get() dentro de uma iteração. TB não precisa de new String(string)

            int i =0;
            for (Iterator it = lhmAtributosClasse.entrySet().iterator(); it.hasNext(); i++) {
                Map.Entry entry  = it.next();
                String strNomeAtributo = entry.getKey().toString(); // não é usado
                
                pstmt.setString( i ,  this.TrataDadosAGravar(entry.getValue()));
            }

Ups, afinal parece que vc quer iterar os valores

            int i =0;
            for (Iterator it = lhmAtributosClasse.values().iterator(); it.hasNext(); i++) {
                pstmt.setString( i ,  this.TrataDadosAGravar(it.next())));
            }

Humm, para que é o mapa mesmo ? :wink:

Isso!

Preciso pegar os valores que por sua vez já estão no LinkedHashMap()