【发布时间】:2011-07-27 01:53:56
【问题描述】:
我可以在 Hashmap 中包含数组吗?
如果是这样,声明这种 hashmap 的确切语法是什么?
谢谢
【问题讨论】:
-
数组是你的键还是你的值?
-
@StriplingWarrior 价值观
标签: java
我可以在 Hashmap 中包含数组吗?
如果是这样,声明这种 hashmap 的确切语法是什么?
谢谢
【问题讨论】:
标签: java
我认为您应该使用 ArrayList 而不是原始数组。因为在 HashMap 类内部进行了 == 比较。
所以,你可以有这样的东西:
HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
当映射检查数组中是否存在某个元素(给定其键“k”)时,它会计算其哈希码。如果在那个位置“k”有一些元素,那么可能会产生一个colision,所以它会检查元素是否相同。原始数组可能会遇到一些问题。
【讨论】:
【讨论】:
HashMap<String, String[]> ab = new HashMap<String, String[]>();
【讨论】:
是的。下面是一个使用 int [] 作为值的示例。示例here。
Map<String, int[]> map = new TreeMap<String, int[]>();
【讨论】:
数组也是对象。甚至像 int[] 这样的原始数组。
Map<String,String[]> map = new HashMap<String,String[]>();
【讨论】:
Map<String, List<String>[]> map = new LinkedHashMap<String, List<String>[]>();的错误
HashMap<String, ArrayList<String[]>>。拥有ArrayLists 的数组会很愚蠢。