Problema na criação de HashMap

3 respostas
P
dadosReação p = new dadosReação ();
    Map <Object, Integer> coefReag = new HashMap <Object, Integer>();
    int i=0,j=0,k=0;
    
    System.out.println(p.sReagente[i][j]);//p.sReagente[i][j] retorna uma string sem problema
    
    //quero criar o hashmap com os elementos do p.sReagente para i=0
    for(j=0; j<p.sReagente.length; j++){
        coefReag.put(p.sReagente[i][j], 1); //aparece o erro aqui Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
        }

Oqq eu to fazendo de errado? Aonde foi que eu errei?!
Pq nao consigo criar o HashMap?

3 Respostas

Andre_Brito

É porque você pega a quantidade de linhas, e a quantidade de columas é menor que a de linha (i.e., não é uma matriz quadrada).
O correto, acredito eu, seria

for(j = 0; j < p.sReagente[i].length; j++){
    coefReag.put(p.sReagente[i][j], 1); 
}

Execute esse outro exemplo:

public static void main(String[] args){
   int[][] m = new int[2][1];
   
   System.out.println(m.length);
   System.out.println(m[0].length);
}
marcos1EM

De acordo com a mensagem de erro não está sendo encontrado o indice especificado na matriz, isso se deve ao fato do sReagente.length retorna o número de linha da matriz então você tem que passar o j na primeira posição assim:

for(j=0; j<p.sReagente.length; j++){ coefReag.put(p.sReagente[j][i], 1); }

P

vc esta usando uma coleção e não preenchendo matriz… preencha seu hash map com o metodo put:

coefReag.put(objeto, inteiro);

falow espero ter ajudado

Criado 23 de novembro de 2010
Ultima resposta 23 de nov. de 2010
Respostas 3
Participantes 4