加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java.util.HashMap类’keySet()方法的时间复杂度是多少?

发布时间:2020-12-15 05:22:09 所属栏目:Java 来源:网络整理
导读:我正在尝试实现平面扫描算法,为此我需要知道 java.util.HashMap class’ keySet()方法的时间复杂度.我怀疑它是O(n log n).我对么? 澄清点:我在谈论keySet()方法的时间复杂性;迭代返回的Set将显然花费O(n)时间. 解决方法 实际上,获取密钥集是O(1)并且便宜.
我正在尝试实现平面扫描算法,为此我需要知道 java.util.HashMap class’ keySet()方法的时间复杂度.我怀疑它是O(n log n).我对么?

澄清点:我在谈论keySet()方法的时间复杂性;迭代返回的Set将显然花费O(n)时间.

解决方法

实际上,获取密钥集是O(1)并且便宜.这是因为HashMap.keyset()返回与HashMap关联的实际KeySet对象.

返回的Set不是键的副本,而是实际HashMap状态的包装器.实际上,如果你更新集合,你实际上可以改变HashMap的状态;例如在集合上调用clear()将清除HashMap!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读