Мой список содержит такие наборы, как [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
. Но есть ли какой-то один лайнер?
ОБНОВЛЕНИЕ:
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());
Это работает, но можно ли это упростить?
flatMap
, а затем отсортировать, а затем собрать.block.stream().flatMap(Set::stream).sorted().collect(Collectors.toList())
. Обратите внимание, что(n,m)->n.compareTo(m)
вообще не нужен. - person Eugene   schedule 03.06.2017