Escreva um método de modo em Java para encontrar o elemento que ocorre com mais frequência em uma matriz

A pergunta vai:

Escreva um método chamado mode que retorna o elemento que ocorre com mais freqüência de uma matriz de inteiros. Suponha que a matriz tenha pelo menos um elemento e que todos os elementos da matriz tenham um valor entre 0 e 100, inclusive. Quebre os laços escolhendo o valor mais baixo.

Por exemplo, se a matriz transmitida contiver os valores {27, 15, 15, 11, 27}, seu método deve retornar 15. (Dica: Você pode querer olhar para o programa Tally no início deste capítulo para ter uma ideia de Como resolver este problema.)

Abaixo está meu código que quase funciona, exceto para matrizes de elemento único

public static int mode(int[] n)
{
    Arrays.sort(n);
    
    int count2 = 0;
    int count1 = 0;
    int pupular1 =0;
    int popular2 =0;


    for (int i = 0; i < n.length; i++)
    {
            pupular1 = n[i];
            count1 = 0;    //see edit

        for (int j = i + 1; j < n.length; j++)
        {
            if (pupular1 == n[j]) count1++;
        }

        if (count1 > count2)
        {
                popular2 = pupular1;
                count2 = count1;
        }

        else if(count1 == count2)
        {
            popular2 = Math.min(popular2, pupular1);
        }
    }

    return popular2;
}

Editar: finalmente descobri. Mudoucount1 = 0; paracount1 = 1; tudo funciona agora!

questionAnswers(14)

yourAnswerToTheQuestion