我有多个学生对象流。我必须按排序顺序合并它们。
class Student {
private String branch;
private Integer rollNo;
private Date doj;
// Getters and Setters
}
在另一个类中,我有一个方法
private Stream<Student> mergeAndSort(Stream<Student> s1, Stream<Student> s2, Stream<Student> s3) {
return Stream.of(s1, s2, s3).sorted(...
// I tried this logic multiple times but is not working. How can I inject Student comparator here.
// I have to sort based on branch and then rollNo.
);
}
最佳答案
Stream.of(s1, s2, s3)
给你一个 Stream<Stream<Student>>
.为了得到Stream<Student>
, 使用 flatMap
:
Stream.of(s1, s2, s3).flatMap(Function.identity()).sorted(...)...
根据需要的属性排序:
return Stream.of(s1, s2, s3)
.flatMap(Function.identity())
.sorted(Comparator.comparing(Student::getBranch).thenComparing(Student::getRollNo));
关于sorting - 合并和排序多个流 java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57973953/