当前位置: 首页 > 面试题库 >

为什么Java 6会在SortedMap中覆盖keySet(),entrySet()和values()接口

江亮
2023-03-14
问题内容

Java 5
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/SortedMap.html

Java 6
https://docs.oracle.com/javase/6/docs/api/java/util/SortedMap.html

如您所见,从Java 6开始,这三个api被覆盖。谁能告诉我进行此更改的目的是什么?


问题答案:

为了拥有自己的Javadoc,必须重写这些方法。

您需要在子接口中声明方法的其他原因是可以限制返回类型或添加批注,但是在这种情况下他们没有这样做,所以这不是原因。

Javadoc是接口合同的一部分。在Java 6中,Sun /
Oracle认为有必要弄清这些方法在a上的行为SortedMap,这进一步限制了它们在in中的行为Map

例如,在SortedMap中的Javadoc中keySet说:

集合的迭代器以升序返回键。

在上Map,相同的方法没有通常的描述,因此Google Maps可以按其喜欢的任何顺序返回键集;SortedMap进一步限制了自身。



 类似资料:
  • 问题内容: 我把一个字符串数组元素是一个映射,其中字符串数组的元素是键,单词的频率是值,例如: 那么地图上将有类似 打印所有键: 打印所有键值对: 使用条目集将打印所有值: 但是下面的代码块应该输出与上面完全相同的输出,但是不会: 它打印: 但是,如果我们在while循环中取消注释第1行,即 并评论这一行 然后我们得到所有键: 如果使用with ,则迭代器没有几个键! 问题答案: 每次调用move

  • 问题内容: 考虑我创建一个LinkedHashMap,如下所示: 当我打电话给我时,有没有给我订购一套?如果我打电话给我,这些也是吗? 编辑 很抱歉,是有序的,没有排序。 问题答案: 首先是 有序 但没有 排序 。被 排序 (并因此 有序 以及)。 这就是说,你不能指望的输出,并进行排序。实际上,JavaDoc说 与订单无关 (事实证明,顺序 是 :由JavaDoc的保证是保证键和值从一个Link

  • 问题内容: 我正在使用内置的django登录和注销。在我的Project / urls.py中,我添加了用于登录和注销的URL。 我的帐户应用程序文件夹中有模板文件夹。我有这样的目录结构 我已经阅读了django文档,其中说对于login()默认模板是registration / login.html,这在我的项目中工作正常,而logout()默认模板是registration / logged_

  • 问题内容: 在java中为什么需要覆盖equals和hashcode方法?什么时候用到? 问题答案: 让我们尝试通过一个示例来理解它,如果我们不进行覆盖而覆盖并尝试使用。 假设我们有一个类像这样那样的两个对象是相等的,如果他们等于(和生成) 仅覆盖 如果仅覆盖被覆盖,则在你第一次调用时将散列到某个存储桶,而在调用时将散列到其他存储桶(因为它们具有不同的)。因此,尽管它们是相等的,但由于它们没有散列

  • 问题内容: 所有, 谁能让我确切知道两者之间的性能问题?站点:CodeRanch简要概述了使用keySet()和get()时需要的内部调用。但是如果使用keySet()和get()方法时,任何人都可以提供有关流的确切详细信息,那将是很好的。这将帮助我更好地了解性能问题。 问题答案: 首先,这完全取决于您使用的地图类型。但是,由于JavaRanch线程讨论了HashMap,因此我假设这就是您所指的实

  • 在这个特定的示例中,我扩展了