【SaaS云会议系统开发】项目实训——2021.07.14

【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;
    }

总结

其实算法非常容易实现,但是在排序算法的选择上纠结了很久,由于我的会议数量不会特别多,所以最后还是使用简单的插入算法进行实现。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值