Ton*_*nov 3 java initialization hashmap map
我在Java中有一个词干算法,它需要一个HashMap<String, String>预先填充大约30 000条记录的静态最终版本.
我需要地图按照插入顺序保存记录(我得到了一个提示,我可以使用LinkedHashMap?).
我以为我可以在Java类文件中手动插入值,因为这是在RAM中加载它们的最快方法(时间/生产力对于这个项目非常重要),通过使用30 000个调用
map.put("Key", "Value");
Run Code Online (Sandbox Code Playgroud)
问题是,java(或者至少是eclipse)在任何段/方法等中只允许65kb的代码.所以我最终扩展了11个类并将65kb的.puts放在构造函数或者static { }.
一切都很好,但是当我运行它时,订单就会被打乱.对于这么多行,我无法在扩展顺序或地图中跟踪出错的地方.
那么,请告诉我你在java中填写最终地图的最佳方式是什么.
PS:从文件加载和解析记录太慢了......
一切都很好,但是当我运行它时,订单就会被打乱.对于这么多行,我无法在扩展顺序或地图中跟踪出错的地方.
a)HashMap不保留插入顺序.请LinkedHashMap改用.或者,因为你将它用作常数,考虑一个番石榴ImmutableMap.它保留插入oder,是不可变的,并提供了一个构建器对象,用于构造具有许多值的构造对象.
b)
PS:从文件加载记录太慢了......
为什么?在课堂加载期间,它只会完成一次.35K字符串/字符串对实际上并不是现代机器的大量数据.
| 归档时间: |
|
| 查看次数: |
1236 次 |
| 最近记录: |