Java で verctors のベクトルから要素を削除し、このベクトルを正しい場所に設定しようとしました。
だから私はこれを試してみましたが、もちろんうまくいきませんでした.行(2)が整数を返すからです:
意味:
Vector<Vector<Integer>> current_domain;
Vector<Integer> t = current_domain.get(k).remove(0);
current_domain.set(k, t);
Java で verctors のベクトルから要素を削除し、このベクトルを正しい場所に設定しようとしました。
だから私はこれを試してみましたが、もちろんうまくいきませんでした.行(2)が整数を返すからです:
意味:
Vector<Vector<Integer>> current_domain;
Vector<Integer> t = current_domain.get(k).remove(0);
current_domain.set(k, t);
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);
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
。
各段階で何が返されるかを論理的に考える必要があります。あなたを助けるために物事を分割し、変数に適切で役立つ名前を付けてください:
Vector<Integer> subVector = current_domain.get(k);
Integer intVal = subVector.remove(0);
//... now, what do you actually want to do with the integer?
ちなみに、あなたは非常に奇妙なデータ構造を使用しており、それを使って何をしていても非効率的である可能性があります(ただし、努力の目的もあまり明確ではありません)。
あなたはおそらくやろうとしていますか:
Vector<Vector<Integer>> current_domain;
Vector<Integer> t = current_domain.remove(k);
// do something to t
current_domain.set(k, t);
? Remove は要素を返すので、要素を含むコレクションから呼び出す必要があります。