как вывести сколько дубликатов и их количество

Подскажите, пожалуйста в чем проблема у меня есть список "Europe", "Europe", "Africa", "Africa", "Africa", "America" и должно вывести "Europe"2, "Africa"3 " и все (Америка не выводится так как не имеет дубликата)

Вот что у меня выводится

trueAssertion faildEurope2
falseAssertion faildAfrica2
falseAssertion faildAfrica2
falseAssertion faildAfrica2
falseAssertion faildAmerica2
falseAssertion faildAfrica2
falseAssertion faildAfrica2
falseAssertion faildAfrica2
falseAssertion faildAmerica2
trueAssertion faildAfrica3
trueAssertion faildAfrica4
falseAssertion faildAmerica4
trueAssertion faildAfrica5
falseAssertion faildAmerica5
falseAssertion faildAmerica5

Process finished with exit code 0

Вот код:

public class Main {

    public static void main(String[] args) {
        List<String> aList = Arrays.asList("Europe", "Europe", "Africa", "Africa", "Africa", "America");
        int countDuplicates = 1;
        for (int i = 0; i < aList.size(); i++)
            for (int j = i+1; j < aList.size(); j++) {
                if (aList.get(i).equals(aList.get(j))) {
                    countDuplicates++;
                }
                System.out.println(aList.get(i).equals(aList.get(j)) + "Assertion faild" + aList.get(j)+countDuplicates);
            }

        }

    }

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

Автор решения: Дмитрий

Сложновата реализация, отсюда всегда все беды. Принцип кiss никто не отменял:

Map<String, Long> result = Arrays.asList("Europe", "Europe", "Africa", "Africa", "Africa", "America").stream()
        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); 
result.entrySet().removeIf(e->e.getValue()==1);
→ Ссылка
Автор решения: Bogdan Voinov
public class Main {

    public static void main(String[] args) {
        List<String> aList = Arrays.asList("Europe", "Europe", "Africa", "Africa", "Africa", "America");
        int countDuplicates = 1;
        for (int i = 0; i < aList.size(); i++)
            for (int j = i+1; j < aList.size(); j++) {
                if (aList.get(i).equals(aList.get(j))) {
                    countDuplicates++;
                    aList.remove(j);
                }
                
            }
                if(countDuplicates > 1){
                    System.out.println(aList.get(i)+" "+countDuplicates);
                    aList.remove(i);
                    countDuplicates = 1;
                }
        }

    }

Вроде бы так.

→ Ссылка