Ребят, кто знает, как данный метод зарефакторить таким образом, что бы результат был тот же, используя при этом только Stream API?
public Set<String> getUniqueIPs() {
    Set<String> strings = new HashSet<>();
    for (String line : logs) {
        Matcher matcher = pattern.matcher(line);
        if (matcher.find())
            strings.add(matcher.group("ip"));
    }
    return strings;
}
Используя стримы, я столкнулся с проблемой преобразования исходящей строки line из списка logs в matcher.group("ip"). Обьясню, вот такая конструкция stream добавляет в сет целый елемент из списка logs (то есть line), если он подпадает под паттерн. А нужно обрезать линию-елемент списка logs до matcher.group("ip")
public int getUniqueIPs() {
        return logs.stream()
                .filter(pattern.asPredicate())
                .collect(Collectors.toSet());
    }