Выбрать из коллекции Java, используя потокJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Выбрать из коллекции Java, используя поток

Сообщение Гость »

Я хочу знать, существует ли реализация «извлечения» элементов из реализации коллекции на основе заданного предиката, то есть удаления указанных элементов после извлечения. Чтобы представить, что я имею в виду, рассмотрим следующий вариант использования:

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

Set
 parentSet = parentDao.getParents();
Set parentIdSet = parentSet.stream().map(Parent::getId).collect(Collectors.toSet())
Set childrenSet = childDao.getChildByParentIds(parentIdSet);

for (Parent parent : parentSet) {
Set childrenOfThisParent = childrenSet
.stream()
.pluck((Child c) -> Objects.equals(parent.getId(), c.getParentId()))
.collect(Collectors.toSet());

parent.setChildren(childrenOfThisParent);
}

// At this line, childSet should be empty.
assert(childrenSet.isEmpty());
Я хочу, чтобы каждая итерация после того, как Set была отфильтрована по его родительскому идентификатору и инициализирована как ChildrenOfThisParent, я хочу, чтобы они были удален из childSet и уменьшите размер() childSet. По сути, поиск в childSet должен быть быстрее на следующей итерации. Хотя на данный момент мне нужно провести тест, чтобы узнать, будет ли более быстрое время поиска существенным.


Подробнее здесь: https://stackoverflow.com/questions/782 ... ing-stream
Ответить

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

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

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

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

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