Используйте поток для фильтрации в списке, сохраняя некоторые из фильтрованных значенийJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Используйте поток для фильтрации в списке, сохраняя некоторые из фильтрованных значений

Сообщение Anonymous »

Итак, мне нужно отфильтровать список элементов, где < /p>
Определение элемента: < /p>

Код: Выделить всё

{
id, category, title
}
< /code>
Категория может быть t (заголовок) или k (ключевое слово) строки типа. Проблема в том, что иногда у нас есть элементы категории k, которые могут иметь повторение заголовка. Повторение заголовка.public List findSuggestions(String req) {
List items = service.findSuggestions(req);
Predicate isTitle = item -> item.getCategory().equals("T");
Predicate differentTitle = Utils.distinctByKey(Item::getTitle);
Predicate isKeyword = item -> item.getCategory().equals("K");
List result = items.stream()
.filter(isTitle)
.filter(differentTitle).collect(Collectors.toList());
result.addAll(items.stream().filter(isKeyword).collect(Collectors.toList()));
return result;
}
Я хотел бы упростить это, без необходимости разделить логику на два разных фильтра.


Подробнее здесь: https://stackoverflow.com/questions/647 ... red-values
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»