Bin*_*Bin 3 java arraylist biginteger large-data bigdata
我正在尝试加载超过2 ^ 32个元素的数据集,并将这些元素放在ArrayList中anArrayList.此数据按时间顺序排列,因此我使用ArrayList存储数据以保持顺序.同时,我想快速访问String中的元素elementID.现在我使用HashMap将a映射elementID到元素Object中anArrayList.我使用整数currentAddingAt来跟踪anArrayList上的索引以添加元素.这是相关的代码:
ArrayList<ElementX> anArrayList;
int currentAddingAt;
HashMap<String, ElementX> elementToObjHashMap;
... ...
public void addAnElement(ElementX e){
anArrayList.add(currentAddingAt, e);
elementToObjHashMap.put(e.getElementID, ArrayList.get(currentAddingAt));
}
Run Code Online (Sandbox Code Playgroud)
当我改变的类型的问题来了currentAddingAt,从int到long.因为ArrayList的get(int index)方法仅int作为参数,根据Oracle的文档(http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html).这也让我想知道:
ArrayList的容量可以大于Java中的最大int数(2 ^ 32)吗?
除了在这种情况下使用ArrayList和HashMap之外还有哪些选项(保持大数据集的顺序并且仍然能够从键快速映射到对象)?除了普通的Java之外,我还需要一些库(甚至是某些框架)吗?
| 归档时间: |
|
| 查看次数: |
4229 次 |
| 最近记录: |