gpt4 book ai didi

java - 通用映射接口(interface)中的方法签名

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:52 24 4
gpt4 key购买 nike

我刚刚通过 Oracle 文档教程学习了 Java 中的泛型 Tutorial .现在我已经转向了 Collections Framework。我想知道 Map 接口(interface)是否像这样通用

 public interface Map<K,V> {

// Basic operations
V put(K key, V value);
V get(Object key);
V remove(Object key);
boolean containsKey(Object key);
//some more method declarations
}

我想知道为什么 V get(Object key); 的方法签名V 删除(对象键); boolean containsKey(Object key); 使用 Object 作为参数而不是 K。

最佳答案

这是因为 Map 的键最终是一个 Set;并且 Map 包含给定键的值,如果其 Setcontains()查询的值...

... 你会注意到,从上面链接的 contains() 方法的原型(prototype)来看,这个方法的参数是一个 Object!这是可以理解的;而例如,Set 的某些实现将依赖于 .equals()(其参数是一个 Object),而其他一些实现则依赖于实现 Comparable 的参数。这两种可能的实现没有比 Object...

更通用的“低级类型”

作为进一步的指示,您会注意到 MapkeySet()名副其实:它返回一个 Set...

(出于纯粹的好奇,如果你深入研究代码,你会注意到 HashSet 实际上是 HashMap;只是你不知道可以访问 map 的值。最终,HashSet 的使用成本相当高!)

关于java - 通用映射接口(interface)中的方法签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17386523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com