【发布时间】:2021-11-20 03:14:28
【问题描述】:
我很难写几行代码。我目前所有的代码都在:https://github.com/anabeen/MeetingJava
我遇到的问题是,找到一种合适的方法来遍历 hashmap 并获取具有重叠时间的会议并替换它们。
Map<LocalDate, Set<Meeting>> meetings = new HashMap<LocalDate, Set<Meeting>>();
假设我们有一个 HashMap
[{2011-03-21=[objectMeeting1, objectMeeting2]}]
我们需要将 objectMeeting3 添加到该 hashMap 中。如何选择键“2011-03-21”来查看该哈希图中的对象并将其中的对象集与新的 objectMeeting3 的时间(来自对象的部分数据)进行比较,然后替换该对象?
在 GitHub 中,我试图通过 MeetingSchedulerTest()。这就是我被困的地方:
Meeting meeting = extractMeeting(employeeId, requestLines[i],
officeStartTime, officeFinishTime, meetingSlotRequest1);
if(meetings.containsKey(meetingDate)){
// if the order overlaps
for (Map.Entry<LocalDate, Set<Meeting>> meetingEntry : meetings.entrySet()) {
if (meetingDate == meetingEntry.getKey())
{
Set<Meeting> setOfMeeting = meetingEntry.getValue();
for (Meeting m : setOfMeeting) {
}
}
}
// if the order doesn't
if (meetings.get(meetingDate) != null)
//shouldNotHaveOverlappingMeetings
{
System.out.println("HERES?");
meetings.remove(meetingDate);
Set<Meeting> meetingsForDay = new HashSet<Meeting>();
meetingsForDay.add(meeting);
meetings.put(meetingDate, meetingsForDay);
} else
{
System.out.println("HERES2?");
meetings.get(meetingDate).add(meeting);
}
}else if (meeting != null){
// if meeting doens't have meetingDate then create a new HashMap with date & Meeting
System.out.println("HERES3?");
Set<Meeting> meetingsForDay = new HashSet<Meeting>();
meetingsForDay.add(meeting);
meetings.put(meetingDate, meetingsForDay);
}
}
【问题讨论】: