Никак не могу понять почему код сработал правильно? Судя логике он берет первый элемент и сравнивает со всеми, находя совпадение и считая количество этих совпадений. Потом все кидает в мэп. Но я думал, что если в массиве будут, например, первый и второй элементы одинаковы, то второй проход по внешнему циклу занесет не правильную информацию в конечный мэп.
for (String s1 : list){
int count = 0;
for (String s2 : list){
if(s1.equals(s2)){
count++;
}
}
result.put(s1, count);
}