[英]Assigning values to Map (Hashmap or Multimap)
我有一張地圖:
HashMap<String, ArrayList<Integer>> hashmap = new HashMap<String, ArrayList<Integer>>();
從遠程數據庫服務器檢索數據后,我正在創建一個hashmap :(在eclipse中輸出)
{newcomer=[23, 78, 118, 155, 240, 244], zoom=[213], profession=[8, 10, 12, 13, 15]}
現在,我擔心的是,連接服務器和下載數據花費了太多時間。 數據大小超出了我的耐心范圍。 有什么辦法,我可以將值直接存儲在Hashmap變量中(就像我們對普通變量所做的那樣,int i = 5);
通常,我該如何做(就像我在Python中一樣):
hashmap = {newcomer=[23, 78, 118, 155, 240, 244], zoom=[213], profession=[8, 10, 12, 13, 15]}
我最近切換到了番石榴,我也可以做這個Multimap嗎? 我現在想分配的值是一個字符串,因此分配可能比我想的要復雜得多。
編輯1 :我只需要出於開發目的。 應用程序上線后,將重新連接到數據庫服務器。
編輯2 :目前我有將近50k對,因此不能單獨添加。 可能,為了發展,我可以將清單縮小到100個項目,但是要逐個列出每個項目也需要人工。
編輯3 :我知道我們可以通過某種方式找出更完美的數據庫來快速執行。 我只需要弄清楚是否可以分配? 否則,我要進行本地設置。
Java無法進行Map
的內聯初始化。 但是,對於您而言,這並不重要-隨着數據量的增加,您通過代碼填充“地圖”要么意味着數小時(或數天)的高度重復且極易出錯的手動輸入,要么編寫了代碼生成器:
我目前有將近5萬對,因此不能單獨添加。
而且,無論如何,如果您編寫代碼生成器,則生成一個內聯初始化程序或加載Map#put()
語句都沒關系。
但是,無論如何在這種情況下,代碼的生成/初始化當然是一個錯誤的選擇。 更好的解決方案將是(按使用率遞減排序):
ObjectOutputStream
),然后從那里反序列化。 除非證明上述所有內容無效,否則我什至不會考慮在代碼中初始化這種大小的數據結構。 這是極不可能的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.