我有一個將列表轉換為地圖的函數。調用此函數后,地圖的大小不會改變。我正在嘗試在以下兩個實現之間做出決定:Map<Long, Object> listToMap(List<Object> objs) { /* Implementation One: */ Map<Long, Object> map = new HashMap<>(objs.size(), 1); for (Object obj : objs) { map.put(obj.getKey(), obj); } return map; /* Implementation Two: */ return objs.stream().collect(Collectors.toMap(Object::getKey, obj -> obj)); }在第一個實現中,我通過使用1的加載因子和列表的大小為所有元素分配了足夠的內存。這樣可以確保不會執(zhí)行調整大小操作。然后,我遍歷該列表并一個接一個地添加元素。在第二種實現中,我使用Java 8流來提高可讀性。我的問題是:第二個實現是否會涉及HashMap的多個調整大小,或者是否已對其進行優(yōu)化以分配足夠的內存?
添加回答
舉報
0/150
提交
取消