2016-10-10 26 views
1

我是新來的Java,學習Map from java oracle Docs,它說如何實現地圖和添加元素地圖經理和員工

當你開始在同一個批量操作混合鍵和值會發生什麼?假設您有一個Map管理員,它將公司中的每個員工映射到員工的經理。我們會故意模糊關鍵和值對象的類型。沒關係,只要它們一樣。現在假設你想知道所有「個人貢獻者」(或非管理者)是誰。下面的代碼片段告訴你到底你想知道什麼。

Set<Employee> individualContributors = new HashSet<Employee>(managers.keySet()); 
individualContributors.removeAll(managers.values()); 

我想上面的查詢代碼,但我不能夠實現ManagerEmployee及其關係,並把地圖中,並獲取managers.values()?有人可以給我示例模板來創建上面的查詢類的例子嗎?

回答

0

在這個例子中,經理和其他員工的類型是無關緊要的。他們之間的管理關係使用「經理」地圖進行管理。例如,您可以設置地圖使用的代碼串是這樣的:

Map<String> managers = new HashMap<>(); 
managers.put("SoftwareEngineer1", "SoftwareEngineeringTeamManager"); 
managers.put("SoftwareEngineer2", "SoftwareEngineeringTeamManager"); 
managers.put("SoftwareEngineeringTeamManager", "MidLevelManager"); 
managers.put("MidLevelManager", "Executive"); 
managers.put("Executive", null); 

這就建立了一個軟件工程師團隊經理,誰反過來由一些中層經理管理,誰管理兩個軟件工程師由一些沒有人管理的主管進行管理。在地圖鍵集是

["SoftwareEngineer1", "SoftwareEngineer2", "SoftwareEngineeringTeamManager", "MidLevelManager", "Executive"] 

,值是

["SoftwareEngineeringTeamManager", "MidLevelManager", "Executive", null] 

在您發佈的代碼示例,該值從按鍵中減去,所以你最終

["SoftwareEngineer1", "SoftwareEngineer2"] 

這些是您正在尋找的個人貢獻者。

+0

謝謝託德鄧拉普 – maya