从树状图实例调用的entrySet()函数是否返回条目的TreeSet或只是一组条目?是否确保顺序?TreeMap的entrySet()是否返回TreeSet
而不是将它作为一组条目获取如何获取条目列表的顺序?
从树状图实例调用的entrySet()函数是否返回条目的TreeSet或只是一组条目?是否确保顺序?TreeMap的entrySet()是否返回TreeSet
而不是将它作为一组条目获取如何获取条目列表的顺序?
这是相反的:TreeSet在内部使用TreeMap。 (见TreeSet docs的第一句)
没有太多的Sun Java源代码,我可以在网络上找到链接,但这里有一些老气版本:
如您所见,TreeMap定义了一个名为TreeMap.EntrySet的内部类,它只是扩展了AbstractSet。不,它不执行SortedSet(否则可能由SortedMap.entrySet()合同指定)。
但回答实际问题:是的,订单是按照SortedMap.entrySet()合同中的规定来确保的。
更新:更新对Java 8 JavaDoc的链接,来源仍然是Java 6的
Assert.assertFalse(new TreeMap().keySet() instanceof SortedSet);
Assert.assertFalse(new TreeMap().keySet() instanceof TreeSet); //no need to assert
但设置有秩序实际上。
你是否确实是指'TreeSet',或者只是一个具有特定行为的'Set'? – skaffman 2010-08-26 07:14:40
我只是表示它是否按排序顺序排列。 – Emil 2010-08-26 07:47:32
@Emil它看起来像从集合返回的条目集合具有自然排序.... – Victor 2015-08-22 16:23:09