繁体   English   中英

使用工厂方法Set.of()和Map.of()创建的集合和地图的时间复杂度是多少?

[英]What is a time complexity for sets and maps created with a factory methods Set.of() and Map.of()?

在Java中,当我创建一个setSet.of()mapMap.of()什么是时间复杂度的containsget操作? 是O(1)吗?

Set.ofMap.of API返回JDK私有实现的实例。 规范不能保证这些实现的性能。 但是,API确实会返回有关可以进行性能说明的特定实现。 因此,该问题是合理的,并且不同于(假设的)问题,例如“ Map.get的性能Map.get ?” 这是一个很糟糕的问题,因为有许多不同的Map实现。

无论如何, Set.of (对于大于2的大小)和Map.of (对于大于1的大小)后面的实现都使用简单的开放式寻址哈希方案,并通过线性探测来解决冲突。 如果元素的(键)哈希值分布合理,则Set.containsMap.get操作为O(1)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM