Посчитать количество авторов примитивным способом

Нужно вывести "Пушкин - 2 и тд.." И не использовать мапы, сделать самым обычным способом. Я понимаю, что нужно сделать вместо булиан инт, но как сделать так, чтобы работало не совсем понимаю

public class arr {
    
    // Общий метод для проверки дубликатов в массиве
    public static boolean checkForDuplicates (String[] array) {
        int count = 0;
        // для каждого элемента массива проверяем, встречается ли он потом в массиве
        for (int i = 0; i < array.length; i++) {
            for (int j = i + 1; j < array.length; j++) {
                if (array[i] != null && array[i].equals(array[j])) {            
                    count++;
                    System.out.println(count);
                    return true;
                }
            }
        }    
        // дубликат не найден
        return false;
    }
    
    public static void main(String[] args) {
        String[] array = {"Пушкин", "Пушкин", "Гоголь", "Толстой"};
        String[] array2 = {"Капитанская дочка", "Дубровский", "Вий", "Война и мир"};
        checkForDuplicates(array);      
    }
}

Ответы (1 шт):

Автор решения: Nowhere Man

Судя по представленному коду, в нём допускается замена дубликатов на null значения в исходном массиве, благодаря которой можно вывести количество авторов.
Такой метод можно переназвать printItemCount -- т.е. он будет выводить частоты элементов массива.
Предполагая, что исходный массив авторов не отсортирован, вычислим статистику авторов (элементов массива) следующим образом:

public static void printItemCount(String ... arr) {
    for (int i = 0, n = arr.length; i < n; i++) {
        if (arr[i] == null) {
            continue;
        }
        String item = arr[i];
        int count = 1;
        for (int j = i + 1; j < n; j++) {
            if (item.equals(arr[j])) { // или equalsIgnoreCase
                count++;
                arr[j] = null;
            }
        }
        System.out.printf("%s: %d%n", item, count);
    }
}

Если нужно сохранить входной массив, придётся скопировать его с помощью Arrays.copyOf или System.arraycopy и вставлять null-ы в массив-копию.

→ Ссылка