четверг, 2 февраля 2017 г.

level10.lesson11.home09

package com.javarush.test.level10.lesson11.home09;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

/* Одинаковые слова в спискеВвести с клавиатуры в список 20 слов.
 Нужно подсчитать количество одинаковых слов в списке.
 Результат нужно представить в виде словаря Map
где первый параметр – уникальная строка,а второй – число,
 сколько раз данная строка встречалась в списке.
 Вывести содержимое словаря на экран.В тестах регистр 
(большая/маленькая буква) влияет на результат.*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        ArrayList words = new ArrayList();
        for (int i = 0; i < 20; i++)
        {
            words.add(reader.readLine());
        }

        Map map = countWords(words);

        for (Map.Entry pair : map.entrySet())
        {
           System.out.println(pair.getKey() + " " + pair.getValue());
        }
    }

    public static Map countWords(ArrayList list)
    {
        HashMap result = new HashMap();
        for (String element : list)
        {
            result.put(element,0);
        }
        for (String listElement : list)
        {
            if (result.containsKey(listElement))
            {
                int n = result.get(listElement);
                result.put(listElement,n+1);
            }
        }

        //напишите тут ваш код

        return result;
    }

}

Комментариев нет:

Отправить комментарий