ArrayList<T> tempArray = new ArrayList<>(size);
我正在为我的合并排序构建一个tempArray,它将根据上下文对整数或字符串进行排序。因此类型为T ArrayList。
然后突然间,每次调用时我都会遇到IndexOutOfBounds错误:
tempArray.set(index, values.get(leftFirst));
经过一番研究后,我发现容量和大小并不意味着同样的事情。所以为了增加&#34;我刚刚添加了一个for循环的大小,该循环运行的大小时间每次都添加一个null:
for (int i = 0; i < size; i++)
tempArray.add(null);
这是最好的解决方案吗?
答案 0 :(得分:2)
您正在尝试将ArrayList用作地图,因此只需切换到Map并将键保持为整数:
Map<Integer, Object> map = new HashMap<>(size);
map.put(index, values.get(leftFirst));
然后按map.get method获取索引:
map.get(index)
请注意,如果您的索引以百万开头,那么您将拥有〜百万个无法使用的空值。这似乎是非常不必要和错误的实施。
修改强>
来自评论/问题,使用T
声明您的地图:
Map<Integer, T> map = new HashMap<>(size);
答案 1 :(得分:0)