Minha dúvida não é nem tanto em java, mas sim em lógica. Tem um calculo que gera um valor. Esse calculo é executado 1000 vezes. A cada vez que ele é executado, o resultado é guardado em um vetor. O que preciso fazer é contar quantas vezes cada valor aparece e depois mostrar esse resultado.
Qtd de numeros em um vetor
8 Respostas
Acho q o melhor seria ter mais um campo no seu vertor tipo “contador”, antes de colocar o valor deve percorrer o vetor, e se jativer o valor so somar mais um no campo “contador”. 
Você quer fazer um histograma, ou uma análise de freqüência? A maneira mais boba é usar um TreeMap. Por exemplo:
public static Map<Integer, Integer> calcularFrequencia (List<Integer> valores) {
Map<Integer,Integer> freq = new TreeMap<Integer,Integer>();
for (Integer valor: valores) {
if (freq.containsValue (valor)) {
freq.put (valor, freq.get (valor) + 1);
} else {
freq.put (valor, 1);
}
}
return freq;
}
...
public static void main(String[] args) {
List<Integer> valores = new ArrayList<Integer>();
valores.add (3); valores.add (1); valores.add (4); valores.add (1); valores.add (5);
valores.add (9); valores.add (2); valores.add (6); valores.add (5); valores.add (3);
valores.add (5); valores.add (8); valores.add (9);
Map<Integer,Integer> freq = calcularFrequencia (valores);
System.out.println (freq);
}
so por ser coritiano vou dar umas dicas, mas nada demais
procure por hashtable, key, find…
at+
há um tempo atras teve alguem com A MESMA DÚVIDA q essa ai…
use a busca do GUJ…
flw
È para fazer um histograma mesmo. Vou pesquisar o que o pardal_nb falou!!
Para fazer análise de freqüência (ou seja, contar quantas vezes o número 1 aparece), pode usar o código que postei acima.
Para fazer um histograma, é necessário criar um outro array, porque você só vai contar os intervalos.
Por exemplo, digamos que você tenha números entre 0.0 e 100.0 e precise fazer um histograma com o intervalo = 10.0.
Então você precisa criar um array de 100.0 / 10.0 + 1 posições (ou seja, 11 posições), percorrer o vetor, e então fazer uma conta do tipo:
for (int i =0; i < quantidade de resultados; ++i) {
int n = (int) Math.floor (resultado [i] / intervalo);
histograma [n] ++;
}
Valeu!!
Consegui uma maneira bem simples de fazer:
import java.util.ArrayList;
import java.util.List;
public class Teste
{
public static void main(String args[])
{ int igual;
int A[] = new int[10];
A[0]=1;
A[1]=2;
A[2]=3;
A[3]=2;
A[4]=3;
A[5]=1;
A[6]=4;
A[7]=4;
A[8]=4;
A[9]=4;
int flag;
for(int i=0;i<10;i++)
{
flag=0;
for (int k=0;k<10;k++)
{
if (A[i]==A[k])
{
flag++;
}
}
System.out.println("O numero "+A[i]+" se repetiu "+flag+" vezes");
}
}
}