2009-07-14 13 views
1

C#の背景から来る私は決してポインタを使用しませんでした。Javaベクトル:要素への安全な参照

私は連絡先オブジェクトのベクトルを作成しています。大きなベクトルの要素を参照する別のベクトルを作成する最良の方法は何ですか?

+1

C#と同じ概念です。あなたはどんなセキュリティを望んでいますか? – akarnokd

+0

私は約1000件の連絡先オブジェクト(名前、住所など)を持つベクトルを含むアプリケーションを持っていますが、現在はお気に入りベクトルを作成したいが、オブジェクト全体を新しいお気に入りベクトルにコピーするのではなく参照を使用したい。だから私は大きなベクトルとお気に入りベクトルを更新するだけで更新される必要があります。 –

+0

ちょうどメモ:javaのベクトルは遺物の何かです。同期化されているため、Vectorを使用した場合と、他のList実装を使用する場合のパフォーマンスオーバーヘッドが少し異なります。 – wds

答えて

3

古い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(); 

変更は両方のリストに反映されます。

+0

構文エラーの修正のためのTy! – jjnguy

+0

要素をコピーしたくありません。 –

+0

これは要素をコピーしません。 – jjnguy

1

参照を両方のベクターに追加するだけです!

Contact myContact = getContact(); 

Vector vectorOne = new Vector(); 
Vector vectorTwo = new Vector(); 

vectorOne.add(myContact); 
vectorTwo.add(myContact); 

ありmyContactのインスタンスは1つだけですが、それに多く参照。

関連する問題