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! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |