【发布时间】:2012-03-22 20:08:33
【问题描述】:
考虑一个具有以下结构的巨大 CSV(为简单起见进行了修改):
ID, NAME, ADDRESS, PHONE, MAIL
1, Jon, UK, 403, jon@skeet.com
2, Marc, UK, 292, marc@gravel.com
3, Darin, France, 291, darin@dimitrov.com
...
(Some million records)
快速获取的自然数据结构是哈希表,其中每个ID 是一个键,NAME, ADDRESS, PHONE, MAIL 是值。我的难题是值的数据结构。
将其存储在HashMap 中,其中每个行标题都是键是浪费空间,因为每行的行标题完全相同。将其存储为数组会丢失每个项目的元数据,因为阅读器
我在考虑两种方法:
重载 Java 的 Hashmap。行标题将被存储一次,每个
ID将与一个字符串数组相关联。get()方法将被重载,以便它返回标题行和行中相应字段之间的映射。创建一个哑类,它使用 getter 和 setter 存储每一行的数据(
row.getMail()、row.getAddress()、...)
就内存效率、类型安全性和速度而言,正确的做法是什么?
【问题讨论】:
标签: java data-structures dictionary nested hashtable