Учитель zapp

Парсер логов (4)

  • 22
  • Недоступна
Реализуй интерфейс EventQuery у класса LogParser: 4.1. Метод getNumberOfAllEvents() должен возвращать количество событий за указанный период. 4.2. Метод getAllEvents() должен возвращать все события за указанный период. 4.3. Метод getEventsForIP() должен возвращать события, которые происходили с указ
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (27)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
4 апреля, 02:25
я нарвался на то что сделал хранилище логов статиком и при повторном создании все логи удваивались, при третьем создании утраивались и так далее
Alex P40 уровень
18 апреля, 05:57
Thank you so much!! I spent 4 hours on that.
18 апреля, 10:53
You are lucky I spent about 3-4 days.
Alex P40 уровень
18 апреля, 20:41
Damn... you are the rock star!
18 апреля, 23:20
самое противное что до 4 го уровня парсера логов требевалось только то что проходидо все проверки с этой бедой
NodeOne41 уровень
28 февраля, 17:32
в задании к первому методу пропущено важное слово "уникальных"! ну а вообще, распарсил как Тузик грелку...
Дмитрий Исаев39 уровень, Екатеринбург
25 февраля, 13:49
Валидатор мои костыли даже не проверял, просто выкидывал таймаут вместо ошибок. Но я все равно его победил.
Gor Ivanov41 уровень, Москва
15 января, 14:15
Для тех кто решает задачу созданием класса Log. Если кто-то парсит номер задачи сразу в Integer, то проинициализируйте его нулём в конструкторе без параметров.
Павел Х.41 уровень, Санкт-Петербург
20 декабря 2018, 00:20
В 7-8 пунктах по привычке собирал в Set, чтобы вернуть его размер. А там значения не уникальны. Все суммирующие лямбды считают в Long, поэтому сделал так:
logRecords.stream()
                .filter(r -> условие)
                .map(LogRecord::getEvent)
                .map(e -> 1)
                .reduce(0, Integer::sum);
С Map пришлось повозиться, чтобы понять, как собрать её через лямбды:
logRecords.stream()
                .filter(условие)
                .map(переводим номер задачи в Integer)
                .collect(Collectors.groupingBy(
                        Function.identity(), Collectors.reducing(0, e -> 1, Integer::sum))
                );
Витя40 уровень, Москва
8 февраля, 11:46
Спасибо за примеры! Порекомендуйте что прочитать про стим апи.
Павел Х.41 уровень, Санкт-Петербург
10 февраля, 08:38
У меня есть пара закладок по Стримам: https://habr.com/ru/company/luxoft/blog/270383/ https://habr.com/ru/post/337350/ Советую прислушиваться к подсказкам Idea и почаще нажимать alt+enter при переборе коллекций циклом. Идея зачастую сама предлагает заменить цикл лямбдой.
Ilya Sakharov41 уровень, Москва
24 октября 2018, 01:49
Это не требования, а полный п... В условии одно, в методе другое, валидатор ожидает третье..
Сергей Онищук41 уровень
30 сентября 2018, 10:20
В последних двух методах где возвращаем MAPы, если ничего не нашли нужно вернуть пустую мапу ,но не null.
Олег40 уровень
12 июля 2018, 13:04
Тут меня всё таки запутали :( Если что в данных методах нигде не надо проверять на статус "ОК"
Jola40 уровень, Львов
24 марта 2018, 22:41
у меня task == с интами, все прошло. Для простоты создала внутренний статистический класс и метод List<Parts> getPartsOfLine(), который использовала во всех остальных методах. Единственное что было неправильно - оказалось до этого момента все в методах добавлялось с зацикленностью, но дубликаты убирались за счет HashSet, поняла, когда getAllSolvedTasksAndTheirNumber() и getAllDoneTasksAndTheirNumber() выдавало number в четыре раза больше чем надо :) Исправила в основном методе и прошло
Анастасия40 уровень, Киев
2 марта 2018, 16:51
За две попытки. Потому что сравнивала номер задачи напрямую с интом, а надо не забывать, не забывать оборачивать в стринг... .equals(String.valueOf(task))