我希望这不会重复。我有以下代码:
ArrayList<HashMap<BigInteger, HashSet<Integer>>> maps = new ArrayList<HashMap<BigInteger, HashSet<Integer>>>();
maps.get(i).put(key, new HashSet<>());
我的索引超出界限错误。我想这是因为我还没有初始化arraylist。有什么意见吗?
2015年1月28日下午5:58后编辑: 这就是事情。我需要检查第i个hashmap(显然我不知道它是否存在)是否包含某个键。我怎么知道第i个hashmap不存在。
答案 0 :(得分:1)
您似乎在空.get(int)
上使用ArrayList
函数。
如果要将数据插入ArrayList
,则需要使用.add(E)
功能。如果要插入特定索引,可以使用.add(int, E)
函数。
在您的情况下,这将是:
maps.add(i, new HashMap<BigInteger, HashSet<Integer>>());
maps.get(i).put(key, new HashSet<>());