[code] 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
}[/code]
Oqq eu to fazendo de errado? Aonde foi que eu errei?!
Pq nao consigo criar o HashMap?
É 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);
}
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);
}
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