C#の背景から来る私は決してポインタを使用しませんでした。Javaベクトル:要素への安全な参照
私は連絡先オブジェクトのベクトルを作成しています。大きなベクトルの要素を参照する別のベクトルを作成する最良の方法は何ですか?
C#の背景から来る私は決してポインタを使用しませんでした。Javaベクトル:要素への安全な参照
私は連絡先オブジェクトのベクトルを作成しています。大きなベクトルの要素を参照する別のベクトルを作成する最良の方法は何ですか?
古いVector
を反復処理して、新しいVector
に要素を追加することができます。
Vector oldVector;
Vector newVector = new Vector(oldVector.size());
for (int i = 0; i < oldVector.size(); i++){
// add logic to exclude items from the new vector if you need
newVector.add(oldVector.get(i));
}
ここで、両方のベクターには同じオブジェクトへの参照が含まれています。電話番号:
newVector.get(n).modifyInSomeWay();
変更は両方のリストに反映されます。
参照を両方のベクターに追加するだけです!
Contact myContact = getContact();
Vector vectorOne = new Vector();
Vector vectorTwo = new Vector();
vectorOne.add(myContact);
vectorTwo.add(myContact);
ありmyContact
のインスタンスは1つだけですが、それに多く参照。
C#と同じ概念です。あなたはどんなセキュリティを望んでいますか? – akarnokd
私は約1000件の連絡先オブジェクト(名前、住所など)を持つベクトルを含むアプリケーションを持っていますが、現在はお気に入りベクトルを作成したいが、オブジェクト全体を新しいお気に入りベクトルにコピーするのではなく参照を使用したい。だから私は大きなベクトルとお気に入りベクトルを更新するだけで更新される必要があります。 –
ちょうどメモ:javaのベクトルは遺物の何かです。同期化されているため、Vectorを使用した場合と、他のList実装を使用する場合のパフォーマンスオーバーヘッドが少し異なります。 – wds