• ,

Не проходит тестирование level10.lesson11.home09

Добрый день, коллеги!
Прошу направить в нужную сторону, перепробовал несколько вариантов решения, никак не могу пройти тестирование.

На мой взгляд метод отрабатывает корректно, ошибок не вижу (может они есть, но взгляд от задачи уже замылен).
Привожу текст метода, который заполнил и прошу помощи у сообщества.


/* Одинаковые слова в списке
Ввести с клавиатуры в список 20 слов. Нужно подсчитать количество одинаковых слов в списке.
Результат нужно представить в виде словаря Map<String, Integer>, где первый параметр – уникальная строка,
а второй – число, сколько раз данная строка встречалась в списке.
Вывести содержимое словаря на экран.
В тестах регистр (большая/маленькая буква) влияет на результат.
*/

public static Map<String, Integer> countWords(ArrayList<String> list)
    {
        HashMap<String, Integer> result = new HashMap<String, Integer>();

        //напишите тут ваш код
        for(String s : list)
        {
            int count = 0;
            if(!result.containsKey(s))
            {
                for (String s1 : list)
                {
                    if(s.equals(s1))
                    {
                        count++;
                    }
                }
            }
            if (count > 1)
            {
                result.put(s, count);
            }
        }
        return result;
    }

6 комментариев

ss-20
а если count == 1? (т.е. элемент встречается только 1 раз.)
bsu26
верно. по крайней мере, план такой.
ss-20
хорошо, что верно, но условие у вас
if (count > 1)
т.е. только при условии что count > 1 будут вставляться значения в map
bsu26
исправил на count > 0, помогло, спасибо!
т.е. я неправильно понял задание и искал количество только одинаковых слов (если слово не повторялось, ничего не делал).
Torin
если хотите больше ответов, пишите всегда условие задачи.
bsu26
принято, условие добавил.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.