Ребят, кто знает, как данный метод зарефакторить таким образом, что бы результат был тот же, используя при этом только 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());
}