为什么我不能插入元素并跳过Vector中的索引?

时间:2016-04-19 12:14:03

标签: java vector indexing

public static void main (String[] args) {
    Vector <Integer> v = new <Integer> Vector();
    v.add(1);
    v.add(2);
    v.add(3,3); // this doesn't work

    int x = v.elementAt(3);
    System.out.println(x);
}

上面的v.add(3,3)产生错误,我想在索引0,1中附加元素并跳到3,但为什么会产生错误? Vector中不允许这样做吗?

谢谢

2 个答案:

答案 0 :(得分:1)

正确:如果您尝试添加超出数组末尾,则不允许在特定索引处添加。见the documentation for add()。您首先需要致电setSize()以腾出空间。

v.setSize(4);
v.add(3,3)

应该有用。

答案 1 :(得分:1)

我需要能够跳过元素时使用的模式是

final List<Integer> list = new ArrayList<>();

public void set(int index, Integer value) {
   while (list.size() <= index) list.add(null);
   list.set(index, value);
}