У меня есть условие, при котором я проверяю равенство строк, если они совпадают, я сохраняю их в Set. Затем я перебираю Set, чтобы проверить, присутствует ли значение ENUM3
, если да, я заменяю эту конкретную строку значением String Java
. Я использую Iterator для l oop и проверяю на равенство. Я ищу ту же функциональность с использованием потоков, где
1. I can loop through Set
2. Check for String equality
3. If ENUM3 found then replace with Java
4. Save all the matched String
Вот мой код
{
Set<String> only = new HashSet<String>();
Iterator<Mark> itr = Marks.iterator();
while (itr.hasNext()) {
Mark find = itr.next();
if (ENUM1.getData().equals(find.search())||ENUM3.getData().equals(find.search())) {
only.add(find.search());
only = only.stream()
.map(macro -> macro.equals(ENUM3.getData()) ? "Java" : macro).collect(Collectors.toSet());
}
}
}
Вот то, что я пытался использовать Stream
only = only.stream()
.map(macro -> macro.equals(ENUM3.getData()) ? "Java" : macro)
.collect(Collectors.toSet());