我需要從函數返回一個HashMap的子集。那麼什麼是更好的方法或最有效的方法:什麼是獲取HashMap中元素子集的有效方法?
a。遍歷HashMap的鍵,我的條件下取其下降,將它們添加到本地創建的HashMap並將其返回
或
灣克隆HashMap並使用retainAll
方法。
即:
private HashMap<Long, List<Files>> abc(HashMap<Long, List<Files> mainMap, Set<Long> setNeeded){
HashMap<Long, List<Files>> retVal = new HashMap<Long, List<Files>>(mainMap);
for(Long timeStamp : mainMap.keySet()){
if(setNeeded.contains(timeStamp){
retVal.put(timeStamp, mainMap.get(key));
}
}
return retVal;
}
或
private HashMap<Long, List<Files>> abc(HashMap<Long, List<Files> mainMap, Set<Long> setNeeded){
HashMap<Long, List<Files>> retVal = new HashMap<Long, List<Files>>(mainMap);
retVal.retainAll(setNeeded);
return retVal;
}
或兩者都最優化和有效?
當你知道你想迭代一個HashMap時,LinkedHashMap允許你迭代這些值 – Simon