Добавление другого ответа, так как это будет больше, чем комментарий. Это действительно то, что сделал принятый ответ, но с «более умным» объединителем, которому не нужно все время повторять поток.
писок содержит наборы, такие как[1,3,5][2,6,4]
и т. д., все одного размера. Я пытался сделать это, но это не сработало.
List<TreeSet<T>> block;
for(TreeSet<T> t : block){
block.stream().sorted((n,m)->n.compareTo(m)).collect(Collectors.toSet());
}
Конечный результат, который я хочу, это[1,2,3][4,5,6]
.
Я мог бы попытаться добавить все элементы вArrayList
и разобраться, а затем сделать новыйList
изTreeSet
«S. Но есть ли какой-то один лайнер?
ОБНОВИТЬ:
List<T> list=new ArrayList<T>();
for(TreeSet<T> t : block){
for(T t1 : t)
{
list.add(t1);
}
}
list=list.stream().sorted((n,m)->n.compareTo(m)).collect(Collectors.toList());
Это работает, но можно ли это упростить?