-3

Java で verctors のベクトルから要素を削除し、このベクトルを正しい場所に設定しようとしました。

だから私はこれを試してみましたが、もちろんうまくいきませんでした.行(2)が整数を返すからです:

意味:

Vector<Vector<Integer>> current_domain;

Vector<Integer> t = current_domain.get(k).remove(0);
current_domain.set(k, t);
4

4 に答える 4

1
Vector<Integer> t = current_domain.get(k).remove(0);

current_domain.get(k)-->returns a Vector<Integer>

Vector<Integer>.remove(0)---> returns an Integer

試す :

Vector<Vector<Integer>> current_domain=null;
Vector<Integer> t = current_domain.get(0);
t.remove(0);
于 2012-11-22T17:39:09.663 に答える
1
Vector<Vector<Integer>> current_domain;

上記のベクトルの場合: -

current_domain.get(k)

を返しますVector<Integer>。を使用remove(0)すると が得られますがinteger、これを に割り当てることはできませんVector

また、使用する場合: -

current_domain.get(k).remove(0);

自動的に変更されますvector。そのため、再度設定する必要はありません。

    Vector<Vector<Integer>> current_domain = new Vector<Vector<Integer>>();

    Vector<Integer> vect = new Vector<Integer>();
    vect.add(4);
    vect.add(5);

    current_domain.add(vect);
    current_domain.get(0).remove(0);

    System.out.println(current_domain);

出力 : -

[[5]]

したがって、変更されていることがわかりますVector


補足として、ArrayList代わりにを使用することをお勧めしますVector

于 2012-11-22T17:39:42.497 に答える
0

各段階で何が返されるかを論理的に考える必要があります。あなたを助けるために物事を分割し、変数に適切で役立つ名前を付けてください:

Vector<Integer> subVector = current_domain.get(k);
Integer intVal = subVector.remove(0);
//... now, what do you actually want to do with the integer?

ちなみに、あなたは非常に奇妙なデータ構造を使用しており、それを使って何をしていても非効率的である可能性があります(ただし、努力の目的もあまり明確ではありません)。

于 2012-11-22T17:38:40.953 に答える
0

あなたはおそらくやろうとしていますか:

Vector<Vector<Integer>> current_domain;

Vector<Integer> t = current_domain.remove(k);
// do something to t
current_domain.set(k, t);

? Remove は要素を返すので、要素を含むコレクションから呼び出す必要があります。

于 2012-11-22T17:39:06.390 に答える