質問

私はこれを持っています:

public class DoubleList<Key, Elem> implements ADTDoubleList<Key, Elem> {

    private Vector<Node<Key, Elem>> leftRight = new Vector<Node<Key, Elem>>(2);
    private int[] numLeftNumRight = new int[2];

    public DoubleList() {
        this.leftRight.set(0, null);
        this.leftRight.set(1, null);
        this.numLeftNumRight[0] = 0;
        this.numLeftNumRight[1] = 0;
    }
}

そして、それはarrayindexOutofboundsexceptionを投げます。

どうしてか分かりません。誰かが私を助けることができますか?

役に立ちましたか?

解決

aに要素を設定することはできません Vector またはその他 List そのインデックスがまだ占有されていない場合。使用して new Vector<Node<Key, Elem>>(2) ベクトルが最初に持っていることを確認しています 容量 2つの要素の場合、しかしそれはまだ空です。 gettingまたは set任意のインデックスを使用しても機能しません。

言い換えれば、リストは、そのインデックスがまだ有効であるほど十分に大きくなっていません。代わりにこれを使用してください:

this.leftRight.add(null);  //index 0
this.leftRight.add(null);  //index 1

あなたもできます:

this.leftRight.add(0, null);
this.leftRight.add(1, null);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top