На этом этапе только добавил метод фильтрации листа Логов по датам. И вызов этого метода перед началом проверки значения field1, которое надо возвратить. Все выводится верно. Почему до этих выводов валик пристал? @Override public Set<Object> execute(String query) { Set<Object> list = new HashSet<>(); List<Log> tempList = new ArrayList<>(); if (query.equals("get ip")) list = logList.stream().map(log -> log.ip).collect(Collectors.toSet()); else if (query.equals("get user")) list = logList.stream().map(log -> log.user).collect(Collectors.toSet()); else if (query.equals("get date")) list = logList.stream().map(log -> log.date).collect(Collectors.toSet()); else if (query.equals("get event")) list = logList.stream().map(log -> log.event).collect(Collectors.toSet()); else if (query.equals("get status")) list = logList.stream().map(log -> log.status).collect(Collectors.toSet()); else { String[] allParametres = query.split("\""); String parametr = allParametres[1]; String[] splits = query.split(" "); if (splits.length >= 6) { switch (splits[3]) { case "ip": { tempList = logList.stream().filter(log -> log.ip.equals(parametr)).collect(Collectors.toList()); break; } case "user": { tempList = logList.stream().filter(log -> log.user.equals(parametr)).collect(Collectors.toList()); break; } case "date": { tempList = logList.stream().filter(log -> { try { return log.date. equals(dateFormat.parse(parametr)); } catch (ParseException e) { } return false;}).collect(Collectors.toList()); break; } case "event": { tempList = logList.stream().filter(log -> log.event.toString().equals(parametr)).collect(Collectors.toList()); break; } case "status": { tempList = logList.stream().filter(log -> log.status.toString().equals(parametr)).collect(Collectors.toList()); break; } default: return list; } if(allParametres.length == 6) { try { Date after = dateFormat.parse(allParametres[3]); Date befor = dateFormat.parse(allParametres[5]); tempList = getResultBetweenDate(tempList, after, befor); } catch (ParseException e) { e.printStackTrace(); } } switch (splits[1]) { case "ip": { list = tempList.stream().map(log -> log.ip).collect(Collectors.toSet()); break; } case "user": { list = tempList.stream().map(log -> log.user).collect(Collectors.toSet()); break; } case "date": { list = tempList.stream().map(log -> log.date).collect(Collectors.toSet()); break; } case "event": { list = tempList.stream().map(log -> log.event).collect(Collectors.toSet()); break; } case "status": { list = tempList.stream().map(log -> log.status).collect(Collectors.toSet()); break; } } } } return list; } Public List<Log> getResultBetweenDate(List<Log> logs, Date after, Date before) { List<Log> list = logs.stream() .filter(log -> ((after == null) || (log.date.after(after) || log.date.equals(after)))) .filter(log -> ((before == null) || (log.date.before(before) || log.date.equals(before)))) .collect(Collectors.toList()); return list;