【SaaS云会议系统开发】会议管理排序算法
算法实现
在Service层对从数据库中获得会议列表进行排序,使得离系统时间最近的会议排列在最前面。
public List<Meeting> myMeetingSort(List<Meeting> meetings) {
if (meetings.size() <= 1) return meetings;
List<Meeting> temps = new ArrayList<>();
for (int i = 0; i < meetings.size(); i++) {
Meeting temp = meetings.get(i);
if (i == 0)
temps.add(temp);
else
for (int j = 0; j < temps.size(); j++) {
if (temp.getStartTime().getTime() < temps.get(j).getStartTime().getTime()) {
temps.add(j, temp);
break;
}else if (j == temps.size() - 1) {
temps.add(temp);
break;
}
}
}
meetings = temps;
return meetings;
}
算法调用
在Service层中进行调用
public List<Meeting> getMeetingByUserId(Integer userId) {
List<MeetingUserRelation> relations = meetingUserRelationRepository.findByUserId(userId);
List<Meeting> meetings = new ArrayList<>();
for (MeetingUserRelation relation : relations) {
Meeting meeting = meetingRepository.findMeetingByIdAndStatus(relation.getMeetingId(), 100);
if (meeting != null) {
meetings.add(meeting);
}
}
meetings = myMeetingSort(meetings);
return meetings;
}
总结
其实算法非常容易实现,但是在排序算法的选择上纠结了很久,由于我的会议数量不会特别多,所以最后还是使用简单的插入算法进行实现。