我正在使用TreeMap存储从longs到longs TreeSet的映射。当我插入新元素时,我使用以下代码:
treeMap.computeIfAbsent(key,k -> new TreeSet<>()).add(val);
但是,查看此函数的源代码它将获取元素,如果该键不存在则计算新值并将计算值放入映射中。这意味着它找到了键的位置两次。我使用的地图非常大,性能至关重要。不幸的是,由于所有必要的变量都是私有的,我无法扩展该类。
TreeMap的实现是否具有更高效的computeIfAbsent?