Lambda MyType列表的排序列表

Lambda MyType列表的排序列表,lambda,java-8,java-stream,Lambda,Java 8,Java Stream,多亏了eran,我有了下面的Lambda,它创建了myType列表。MyType包含一个名为dateOfContainer的字段。 我现在的问题是,是否有可能扩展表达式,以便按dateOfContainer对List的List进行排序 List<List<MyType>> list = new ArrayList<> ( myList.stream().collect (Collectors.groupingBy(MyType::getDateOfContai

多亏了eran,我有了下面的Lambda,它创建了myType列表。MyType包含一个名为
dateOfContainer
的字段。 我现在的问题是,是否有可能扩展表达式,以便按
dateOfContainer
List
List
进行排序

List<List<MyType>> list = new ArrayList<> (
myList.stream().collect (Collectors.groupingBy(MyType::getDateOfContainer)).values());
List List=newarraylist(
myList.stream().collect(Collectors.groupingBy(MyType::getDateOfContainer)).values();
[编辑]

非常感谢你的建议。我仍然在和这个表情抗争。我当前的表达式如下所示:

List<List<ScheduleIntervalContainer>> list = new ArrayList<>(
             structuredScheduleIntervalContainers.stream().sorted(Comparator.comparing(ScheduleIntervalContainer::getDateOfContainer))
            .collect(Collectors.groupingBy(ScheduleIntervalContainer::getDateOfContainer, LinkedHashMap::new, Collectors.toList())).values());
List List=newarraylist(
structuredScheduleIntervalContainers.stream().sorted(Comparator.comparing(ScheduleIntervalContainer::getDateOfContainer))
.collect(Collectors.groupingBy(ScheduleIntervalContainer::getDateOfContainer,LinkedHashMap::new,Collectors.toList()).values());
但我在eclipse中遇到了这个错误:


方法
sorted(ComparatorStream具有排序元素的排序方法。请看以下示例:

Stream.of(1,2,4,0,3).sorted().forEach(i -> System.out.println(i));
这会打印出来

0
1
2
3
4
但在您的情况下,您可能需要实现自己的比较方法来对元素进行排序


您可以在分组之前对流进行排序,然后使用保留顺序的
LinkedHashMap

List<List<MyType>> list = new ArrayList<> (
    myList.stream()
          .sorted(Comparator.comparing(MyType::getDateOfContainer))
          .collect(
              Collectors.groupingBy(MyType::getDateOfContainer,
                  LinkedHashMap::new,
                  Collectors.toList()))
          .values());
List List=newarraylist(
myList.stream()
.sorted(Comparator.comparing(MyType::getDateOfContainer))
.收集(
Collectors.groupingBy(MyType::getDateOfContainer,
LinkedHashMap::新建,
Collectors.toList())
.values());

似乎您正在尝试对上一个解决方案的结果进行排序。相反,您应该扔掉上一个结果,直接在输入
myList
上使用我的解决方案。
List<List<MyType>> list = new ArrayList<> (
    myList.stream()
          .sorted(Comparator.comparing(MyType::getDateOfContainer))
          .collect(
              Collectors.groupingBy(MyType::getDateOfContainer,
                  LinkedHashMap::new,
                  Collectors.toList()))
          .values());