簡體   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