如何制作哈希图数组?
这就是我试图做的,但它给了我一个警告:
HashMap<String, String>[] responseArray = new HashMap[games.size()];
类型安全:HashMap[ ]类型的表达式需要未经检查的转换才能符合HashMap[ ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
你可以使用这样的东西:
You can use something like this:
Java 语言规范第 15.10 节规定:
和
您可以做的最接近的是使用未经检查的强制转换,无论是来自原始类型(如您所做的那样)还是来自无界通配符:
您的版本显然更好:-)
The Java Language Specification, section 15.10, states:
and
The closest you can do is use an unchecked cast, either from the raw type, as you have done, or from an unbounded wildcard:
Your version is clearly better :-)
您不能拥有泛型类型的数组。请改用
List
。You can't have an array of a generic type. Use
List
instead.Java 不希望你创建一个 HashMap 数组,但它会让你创建一个对象数组。因此,只需在 HashMap 周围编写一个类声明作为外壳,并创建该类的一个数组。如果您愿意的话,这可以让您存储一些关于 HashMap 的额外数据——考虑到您已经有一个有点复杂的数据结构,这可能是一个好处。
这看起来像什么:
和
Java doesn't want you to make an array of HashMaps, but it will let you make an array of Objects. So, just write up a class declaration as a shell around your HashMap, and make an array of that class. This lets you store some extra data about the HashMaps if you so choose--which can be a benefit, given that you already have a somewhat complex data structure.
What this looks like:
and
关于@alchemist的答案,我仅使用HashMap和ArrayList添加了一些修改:
Regarding the @alchemist's answer, I added some modifications using only HashMap and ArrayList:
什么给?有用。只需忽略它即可:
不,您不能参数化它。不过,我宁愿使用
List
来代替。要了解有关集合和映射的更多信息,请查看本教程。
What gives? It works. Just ignore it:
No, you cannot parameterize it. I'd however rather use a
List<Map<K, V>>
instead.To learn more about collections and maps, have a look at this tutorial.