A PriorityQueue
не сохраняет свои элементы в порядке. Он возвращает их вам в порядок.
Если вы три раза назовете poll()
на PriorityQueue
, вы вернете свои элементы в соответствующем порядке.
Это должно сделать:
parents.stream()
.flatMap(parent -> parent.getChildren()
.stream()
.map(child -> new SimpleEntry<>(parent, child)))
.map(pair -> new Parent(pair.getKey().getName(),
Arrays.asList(pair.getValue())))
.collect(Collectors.toList());
Это просто создание пары родитель / потомок для каждого ребенка, а затем создание нового родителя для каждой из этих пар с одним дочерним элементом добавлено в поле children
. Затем он попадает в список Parent
.