TreeMap 的 EntrySet() 返回 TreeSet

发布于 2024-09-15 21:49:42 字数 97 浏览 5 评论 0 原文

从树形图实例调用的entrySet()函数是否返回条目的TreeSet或仅返回条目的集合。顺序是否得到保证?

除了将其作为一组条目获取之外,如何按顺序获取条目列表?

Does the entrySet() function that is called from a treemap instance return a TreeSet of entry's or simply a set of entry's.Is the order ensured?

Instead of getting it as a set of entry's how can a get a list of entry's in order?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

煮茶煮酒煮时光 2024-09-22 21:49:42

恰恰相反: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

陈甜 2024-09-22 21:49:42

来自 JavaDoc

public Set>>条目集()

返回此映射中包含的映射的集合视图。 该套装的
迭代器按升序键顺序返回条目。

From the JavaDoc:

public Set<Map.Entry<K,V>> entrySet()

Returns a Set view of the mappings contained in this map. The set's
iterator returns the entries in ascending key order.

冰葑 2024-09-22 21:49:42
Assert.assertFalse(new TreeMap().keySet() instanceof SortedSet );
Assert.assertFalse(new TreeMap().keySet() instanceof TreeSet ); //no need to assert

但这个集合实际上是有顺序的。

Assert.assertFalse(new TreeMap().keySet() instanceof SortedSet );
Assert.assertFalse(new TreeMap().keySet() instanceof TreeSet ); //no need to assert

But the set has order actually.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文