java中.stream().sorted按照stopSaleStatus升序再按照StartTime升序
时间: 2024-10-13 13:08:09 浏览: 61
在Java中,如果你有一个集合(如List或Stream),并且这个集合包含一些对象,这些对象有`stopSaleStatus`和`startTime`字段,你可以使用`.stream()`创建流,然后通过`.sorted()`对这些元素进行排序。
首先,你需要提供一个Comparator(比较器)来定义排序规则。对于你的需求,你想先按`stopSaleStatus`从低到高(升序),如果两个元素的`stopSaleStatus`相同,再按照`startTime`从早到晚(升序)。这可以通过自定义Comparator实现:
```java
import java.util.Comparator;
import java.util.stream.Collectors;
// 假设你的对象有一个名为StopSaleStatus的枚举类型和一个Date类型的startTime属性
class YourObject {
private StopSaleStatus stopSaleStatus;
private Date startTime;
// getters and setters...
}
Comparator<YourObject> comparator = Comparator.comparing(YourObject::getStopSaleStatus)
.thenComparing(YourObject::getStartTime);
List<YourObject> sortedList = yourOriginalList.stream()
.sorted(comparator)
.collect(Collectors.toList());
```
在这个例子中,`yourOriginalList`是你想要排序的列表。这个排序操作会返回一个新的已排序列表,原列表不会改变。
阅读全文
相关推荐


















