List<ProjectTask> (@NotNull BiPredicate<? super ProjectTask, ? super ProjectTaskState> predicate) { return myTasksState.entrySet().stream() .filter(entry -> predicate.test(entry.getKey(), entry.getValue())) .map(Map.Entry::getKey) .collect(Collectors.toList()); }