用 stream 流先按照时间排序,再把在按照手机号是否为空排序
时间: 2023-05-22 21:06:06 浏览: 195
可以使用 Java 8 中的流式编程进行处理,具体代码如下:
```java
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 假设我们有一个名为 records 的数据列表,包含了多个 Record 对象
List<Record> sortedRecords = records.stream()
.sorted(Comparator.comparing(Record::getTime))
.sorted(Comparator.comparing(record -> record.getPhoneNumber() == null))
.collect(Collectors.toList());
}
}
class Record {
private String phoneNumber; // 手机号
private long time; // 时间戳
public String getPhoneNumber() {
return phoneNumber;
}
public long getTime() {
return time;
}
}
```
这段代码中,我们先根据时间戳 `time` 进行排序,然后再根据 `phoneNumber` 是否为空进行排序,最后把排序好的记录收集到一个列表中。注意到我们使用了两个 `sorted()` 方法,并通过 `Comparator.comparing()` 返回一个函数式接口来指定排序条件。同时,我们使用了 `Collectors.toList()` 方法把排序好的记录收集到一个列表中。
阅读全文