繁体   English   中英

如何从 go 到 HashMap 并比较对象的数据并替换 HashMap 的值?

[英]How to go through HashMap and compare the object's data and replace the value for HashMap?

我很难写几行代码。 我目前所有的代码都在: https://github.com/anabeen/MeetingJava

我遇到的问题是,通过 hashmap 找到适合 go 的方法,并获取具有重叠时间的会议并替换它们。

        Map<LocalDate, Set<Meeting>> meetings = new HashMap<LocalDate, Set<Meeting>>();

假设我们有一个[{2011-03-21=[objectMeeting1, objectMeeting2]}]的 HashMap,我们需要将 objectMeeting3 添加到该 hashMap。 我如何 select 密钥“2011-03-21”查看该 hashmap 中的对象并将其中的对象集与新的 objectMeeting3 的时间(来自对象的部分数据)进行比较,然后替换该 ZDDA7806A4847EC61B5940C2623A

在 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);
            }
            
        }

我通过使用这个找到了答案:

            for (Map.Entry<LocalDate, Set<Meeting>> meetingEntry : meetings.entrySet()) {
                if (meetingDate.equals(meetingEntry.getKey()))
                {                   
                    System.out.println("HERES1? ");
                    Set<Meeting> setOfMeeting = meetingEntry.getValue();
                    for (Meeting m : setOfMeeting) {
                        System.out.println("comparing time? " + m.getStartTime().getHourOfDay() + " TO " 
                    + meeting.getStartTime().getHourOfDay());
                        if (m.compareTo(meeting) == 0) {
                            continue;
                        } else {
                            setToPut.add(m);
                        }
                    }
                }
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM