我有一个将列表转换为地图的函数。调用此函数后,地图的大小不会改变。我正在尝试在以下两个实现之间做出决定: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的加载因子和列表的大小为所有元素分配了足够的内存。这样可以确保不会执行调整大小操作。然后,我遍历该列表并一个接一个地添加元素。在第二种实现中,我使用Java 8流来提高可读性。我的问题是:第二个实现是否会涉及HashMap的多个调整大小,或者是否已对其进行优化以分配足够的内存?
添加回答
举报
0/150
提交
取消