oi tava programando em java quando me surgiu uma duvida:
no programa tenho de dado uns 100 valores fazer um histograma simples da distribuição desses valores tipo: numero 10 calhou 7 vezes…
os valores são entre 0 e 255. eu tentei resolver este problema metendo rudo em uma ArraList ficando deste modo:
ArrayList x = new ArrayList();
x.set(numero,x.get(numero)+1);
em que que cada posição da arraylist servia para o mesmo numero e cada vez que que calhava esse numero ele ia incrementar uma unidade, mas tá dando erro…se voces conseguirem encontrar o erro ou arranjar uma solução agradecia…
eu tava tentando com o arraylist pois map eu não entendo bem ainda, e tou tentando implementar este pedaço de código(histograma simples), num metodo que recebe valores de outra class e adiciona esses valores a uma arraylist…será que vc consegue descobrir meu erro no pedaço de codigo?
eu tava tentando com o arraylist pois map eu não entendo bem ainda, e tou tentando implementar este pedaço de código(histograma simples), num metodo que recebe valores de outra class e adiciona esses valores a uma arraylist…será que vc consegue descobrir meu erro no pedaço de codigo?
obrigado pela rapida resposta…Vlw[/quote]
Seu problema ocorre porque vc naum tem a posicao “numero” no arraylist
testa isso:
List<Integer> l = new ArrayList<Integer>();
l.set(20, 1);
Não tem posição 20, então da IndexOutOfBoundsException, os ArrayList crescem a medida que vc adiciona elementos dentro deles… não pode setar ou adicinar elementos numa posição maior que o tamanho deles… o que vc pode fazer (xunxo) eh iniciar 250 posicoes com 0 no array, no inicio do seu programa… soh que eh uma solucao palha, bem palha hehe
mas cheguei à conclusão que não era preciso usar arraylist então usei um array de inteiros inicializado a zero que só ia incrementando quando o numero calhava…