#8552·guava

`ImmutableMap.sortedCopyOf`

作者: cpovirk创建于 2026年7月13日更新于 2026年9月2日
标签type=enhancementpackage=collectP3

这来自于外部用户的请求。其动机是生成一个确定性的顺序,同时继续使用哈希算法进行查找,而不是 `ImmutableSortedMap` 的 O(log N) 查找。当然,我们已经可以在调用 `ImmutableMap.copyOf` 之前对其进行排序,但 `ImmutableMap` 上的一个方法可能会更加引起用户的注意,促使他们考虑排序是否适合他们。 (像往常一样,促使用户考虑某事在绝大多数情况下可能是负面的,但在少数情况下可能是正面的,这有时是可以接受的。或者也许那些足够关注的用户应该对 `ImmutableSortedMap` 和 `ImmutableSortedSet` 进行软禁?)它还可能比单独的排序+复制操作表现得更好,特别是如果输入是一个我们无法优化的流实现。我确实看到许多使用 `sorted().collect(toImmutableMap(...))` 的用户,因此他们要么(根据您的观点)需要此功能,要么不需要此功能。 \[edit: 而且像往常一样,我们可能会担心用户在不重要的情况下是否会使用 `sorted().collect(toImmutableMap(...))` 还是 `sortedCopyOf`。