我想遍历具有大量数据(大约 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...
所以,我的问题是:我是否将存储的数据相乘?我是否在 RAM 中存储了 3 个相同值的副本(一份在 Hashtable 中,一份在 Collection 中,一份在 ArrayList 中)?
如果答案是肯定的,我复制了数据,有没有办法在不复制数据的情况下遍历 Hashtable 的值?
如果答案是否定的,那么这是否意味着 Collection 存储指针?在这种情况下,如果我在创建集合后修改 Hashtable 中的数据,集合是否反映了该更改?(对于 ArrayList 的问题相同)。
谢谢!