эксепшен вылезает, наверное потому что итератор пустой, добавь проверку hasNext
Вобще я не уверен, что это хорошая практика, вот так вот вернуть итератор неизвестно из чего. Лучше уже вернуть просто сет.
Ну или если есть возможность использовать java 8
public Stream<String> filterStringSet(final String filter) {
if (filter == null || filter.isEmpty())
return Stream.empty(); // можно конечно и null вернуть, но тогда это придется обрабатывать
return stringSet.stream()
.filter(str -> str.contains(filter));
}
// ну и потом
filterStringSet("фильтр").forEach(System.out::println)