大量のデータ (約 1 GB) を持つ Hashtable の値を繰り返し処理したいと考えています。そのために、私は使用しています:
Hashtable<String,Object> myHashtable = new Hashtable<String,Object>;
// Fill the Hashtable here...
// Get the values as a Collection:
Collection<Object> myValues = myHashtable.values();
// Get the values as an array:
ArrayList<Object> myArray = myValues.toArray();
// Iterate through the values here...
だから、私の質問は次のとおりです。保存されたデータを乗算していますか? 同じ値の 3 つのコピーが RAM に保存されていますか (Hashtable に 1 つのコピー、Collection に 1 つのコピー、ArrayList に 1 つのコピー)。
答えが「はい」の場合、データをコピーしました。データを複製せずに Hashtable の値を反復処理する方法はありますか?
答えが「いいえ」の場合、それは Collection がポインタを格納するということですか? その場合、コレクションを作成した後に Hashtable のデータを変更すると、コレクションはその変更を反映しますか? (ArrayList についても同じ質問)。
ありがとう!