java map是有序的吗_Java:如何初始化和填充最终的静态有序Map?
我在Java中有一個(gè)詞干算法,它需要一個(gè)靜態(tài)的最終HashMap< String,String>預(yù)先填寫(xiě)了大約30 000條記錄.
我需要地圖按照插入的順序保存記錄(我得到一個(gè)提示,我可以使用LinkedHashMap?).
我以為我可以在Java類文件中手動(dòng)插入值,因?yàn)檫@是在RAM中加載它們的最快方法(時(shí)間/生產(chǎn)力對(duì)于這個(gè)項(xiàng)目非常重要),通過(guò)使用30 000個(gè)調(diào)用
map.put("Key", "Value");
問(wèn)題是,java(或至少eclipse)在任何段/方法等中只允許65kb的代碼.所以我最終擴(kuò)展了11個(gè)類,并在構(gòu)造函數(shù)或靜態(tài){}中放入65kb的.put.
一切都很好,但是當(dāng)我運(yùn)行它時(shí),訂單就被打亂了.對(duì)于這么多行,我無(wú)法在擴(kuò)展順序或地圖中跟蹤出錯(cuò)的地方.
那么,請(qǐng)告訴我你在java中填寫(xiě)最終地圖的最佳方式是什么.
P.S.:從文件加載和解析記錄太慢了……
解決方法:
Everything was fine, but when I run it the order is scrambled. For so
many rows I cannot track where did things go wrong, in the extending
order or in the map.
a)HashMap不保留插入順序.請(qǐng)改用LinkedHashMap.
或者,因?yàn)槟銓⑺米鞒A?考慮一個(gè)Guava ImmutableMap.它保留插入oder,是不可變的,并提供一個(gè)構(gòu)建器對(duì)象,用于構(gòu)造具有許多值的構(gòu)造對(duì)象.
b)
P.S.: Loading the records from a file is far too slow…
為什么?在課堂加載期間,它只會(huì)完成一次. 35K字符串/字符串對(duì)實(shí)際上并不是現(xiàn)代機(jī)器的大量數(shù)據(jù).
標(biāo)簽:java,hashmap,initialization,map
來(lái)源: https://codeday.me/bug/20190729/1574268.html
總結(jié)
以上是生活随笔為你收集整理的java map是有序的吗_Java:如何初始化和填充最终的静态有序Map?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 摩托车锁多少钱啊?
- 下一篇: 为什么海信电视机质量这么差?