TreeMap 的 EntrySet() 返回 TreeSet
从树形图实例调用的entrySet()函数是否返回条目的TreeSet或仅返回条目的集合。顺序是否得到保证?
除了将其作为一组条目获取之外,如何按顺序获取条目列表?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
从树形图实例调用的entrySet()函数是否返回条目的TreeSet或仅返回条目的集合。顺序是否得到保证?
除了将其作为一组条目获取之外,如何按顺序获取条目列表?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
恰恰相反:TreeSet 在内部使用 TreeMap。 (请参阅 TreeSet 文档 的第一句)
我在网上找不到太多可以链接的 Sun java 源代码,但这里有一些旧版本:
你可以看,TreeMap 定义了一个名为 TreeMap.EntrySet 只是扩展了 AbstractSet。不,它没有实现 SortedSet (否则可能由 SortedMap.entrySet() 合约)。
但要回答实际问题:是的,确保按照 SortedMap.entrySet() 合约。
更新:针对 Java 8 更新了 JavaDoc 链接,源仍然是 Java 6
It's the other way around: a TreeSet uses a TreeMap internally. (See first sentence of the TreeSet docs)
There's not much Sun java source code I can find on the web to link to, but here are some oldish versions:
As you can see, TreeMap defines an inner class called TreeMap.EntrySet which just extends AbstractSet. And no, it does not implement SortedSet (which would otherwise probably be specified by the SortedMap.entrySet() contract).
But to answer the actual question: yes, the order is ensured as specified in the SortedMap.entrySet() contract.
Update: JavaDoc links updated for Java 8, sources are still Java 6
来自 JavaDoc:
From the JavaDoc:
但这个集合实际上是有顺序的。
But the set has order actually.