【发布时间】:2013-09-09 01:13:56
【问题描述】:
我正在学习 HashSet 和队列,但我很难理解为什么 Queue/hashMap/other java.util 预定义的数据结构被声明为:
Set<T> h = new HashSet<T>();
Queue<T> q = new LinkedList<T>();
我了解<T> 可以是整数/字符串/其他数据类型,这是为了确保我们将相同的数据类型添加到数据结构中。但是,我不明白为什么当它是一个 HashSet 时,我必须将它声明为一个新的 HashMap。我关注this。有没有办法知道必须将 HashSet/Queue/others 声明为仅 HashMap/LinkedList?非常感谢!请告诉我是否必须解释/修改我的问题。
【问题讨论】:
-
这:
HashSet<T> h = new HashMap<T>();没有意义,不应该编译。您不能将 Map 分配给 Set,也不能仅使用一个通用参数声明或定义 Map。 -
对不起,它是 Set= HashSet。我会编辑它
-
是的,我明白了为什么我不能将地图分配给只有一个参数的集合。谢谢! :)