Você está aqui: Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar o elemento mais frequente em um vetor de inteiros em JavaQuantidade de visualizações: 596 vezes |
|
Nesta dica mostrarei como encontrar o elemento que se repete com mais frequência em um vetor de inteiros em Java. Para isso nós vamos um HashMap e um Set. O HashMap será usado para guardar cada elemento do vetor e a frequência com ele se repete. O Set, por sua vez, será usado para adicionamos os elementos do HashMap e acessar suas chaves e valores usando um objeto Entry. Veja o código completo para o exemplo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
public class Estudos{
public static void main(String[] args){
// vamos declarar um vetor de inteiros com valores repetidos
int valores[] = {4, 8, 7, 2, 8, 7, 9, 8, 4};
// mostramos o vetor original
System.out.println("O vetor original é: " + Arrays.toString(valores));
// agora criamos um HashMap com chaves e valores do tipo Integer
HashMap<Integer, Integer> mapaContagem = new HashMap();
// agora varremos o vetor e adicionamos os seus elementos no HashMap
for (int i : valores){
// o valor já está no hash map?
if (mapaContagem.containsKey(i)){
// se o elemento existir, vamos incrementar a sua contagem
mapaContagem.put(i, mapaContagem.get(i) + 1);
}
else{
// o elemento não existe ainda. Vamos acrescentá-lo com o valor 1
mapaContagem.put(i, 1);
}
}
int elemento = 0;
int frequencia = 1;
// criamos um set a partir do hash map de contagem
Set<Entry<Integer, Integer>> set = mapaContagem.entrySet();
// agora percorremos os elementos do set para obter o elemento
// com maior frequência
for (Entry<Integer, Integer> entry : set){
// a frequência atual é maior do que a frequência que temos?
if(entry.getValue() > frequencia){
// guardamos o elemento
elemento = entry.getKey();
// guardamos a frequência
frequencia = entry.getValue();
}
}
// mostramos o resultado
System.out.println("O elemento com maior frequência é: " +
elemento);
System.out.println("Ele aparece " + frequencia + " vezes");
}
}
Ao executar este código Java nós teremos o seguinte resultado: O vetor original é: [4, 8, 7, 2, 8, 7, 9, 8, 4] O elemento com maior frequência é: 8 Ele aparece 3 vezes |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
|
TypeScript - Como calcular o coeficiente angular de uma reta em TypeScript dados dois pontos no plano cartesiano |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






