Java 做树映射';s entrySet()返回树集

Java 做树映射';s entrySet()返回树集,java,collections,treemap,Java,Collections,Treemap,从treemap实例调用的entrySet()函数是否返回一个entry的TreeSet,或者只是返回一组entry。顺序是否得到保证 与其将其作为一组条目来获取,如何才能按顺序获取条目列表?来自: public Set entrySet() 返回此映射中包含的映射的集合视图布景很好 迭代器以升序键顺序返回条目。 反过来说:树集在内部使用树映射。(见本报告第一句) 我在网上找不到多少Sun java源代码可供链接,但这里有一些旧版本: 如您所见,TreeMap定义了一个名为的内部类,它只

从treemap实例调用的entrySet()函数是否返回一个entry的TreeSet,或者只是返回一组entry。顺序是否得到保证

与其将其作为一组条目来获取,如何才能按顺序获取条目列表?

来自:

public Set entrySet()

返回此映射中包含的映射的集合视图布景很好 迭代器以升序键顺序返回条目。


反过来说:树集在内部使用树映射。(见本报告第一句)

我在网上找不到多少Sun java源代码可供链接,但这里有一些旧版本:

如您所见,TreeMap定义了一个名为的内部类,它只是扩展了AbstractSet。不,它不执行(否则可能由合同规定)

但要回答实际问题:是的,订单是按照合同规定的


更新:JavaDoc链接为Java8更新,源代码仍然是Java6

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

实际上,集合有顺序。

它不使它成为树集,而是(并且我不能认为这是理所当然的)一个排序集。对,它是一个明确的排序集,但不一定是<代码> java。UTI.SoReToSET/<代码>或者甚至是树集。你实际上是指<代码>树集< /C>或者只是一个具有特定行为的
集合
。。。。