Bom galera tou com o seguinte problema, tenho uma Lista onde posso ter vários elementos diferentes com quantidades diferentes.
Por exemplo, tenho um Lista com 3 valores (a, b e c) somando um total de 150.
Então gostaria de saber como que faço para agrupar todos os ‘a’ em um só e mostrar quantos dele tem na lista, e o mesmo para ‘b’ e ‘c’.
Com o código abaixo, consigo pegar todos os elementos e o valor da soma de todos retornado, mas o que eu gostaria era o que citei acima.
public class ClassFrequencia
{
public static int getFrequencia(ArrayList<String> c)
{
int count = 0;
for (int i = 0; i < c.size(); i++)
{
System.out.println("Nomes: " + c.get(i));
count++;
}
return count;
}
}
Alguém poderia de me dar uma idéia de como que posso fazer isso?
Desde de já obrigado pela ajuda de todos.
Você pode criar uma coleção para armazenar A, uma para B e uma para C. Após isso, na sua iteração, você verifica: “nessa string contém ‘a’?” [Faça isso com o método contains das strings] Se conter, você adiciona na coleção de A’s. O mesmo vale para B e C!
public class ClassFrequencia
{
public static void getFrequencia(ArrayList<String> c)
{
while (c.size() != 0)
{
int count = 0;
String nome = c.get(0);
for (int i = 0; i < c.size(); i++)
{
if(nome.equals(c.get(i)))
{
count++;
c.remove(i);
}
}
System.out.println("Nome: " + nome + " Frequência: " + count);
}
}
}
Usa o método do nel, mas no lugar de inteiro usa o nome q tu precisa, string no caso.
Vai retornar a frequência em inteiro. Oq tu fez é mais complicado e está removendo valor sendo q tu só precisa contar q quantidade.