0
我正在使用TreeMap,因爲它是存儲我需要的信息的最高效的數據結構。我必須能夠保留TreeMap以供將來使用,那麼我有沒有辦法將它存儲在一個對象中,也許在這樣做之前序列化它?如何序列化TreeMap並將其插入到SharedPreferences?
我知道這種方法here,但使用Apache Pig項目中的ObjectSerializer
會導致Eclipse崩潰。當我運行的應用程序,在底部的狀態欄永遠不會過去的「啓動[應用程序名稱] 100%」的消息,直到它引發以下錯誤消息:
Unable to execute dex: Java heap space
Unhandled event loop execution
有什麼我可以做存儲共享首選項中的TreeMap?
不知道我是否正確理解你 - 你的意思是,而不是使用TreeMap,以JSON格式存儲我的數據,並將它作爲字符串從共享首選項中存儲/檢索(這樣,不再需要序列化/反序列化)?因爲我可能會丟失數據的排序順序,這就是爲什麼我首先使用TreeMap的原因。 –
不,您只使用TreeMap。但是,當存儲到SharedPrefrences中時,將其轉換爲JSON格式。當你從共享首選項中讀取它時,你從那裏讀取並將其轉換回TreeMap。 –
代碼的邏輯將是這樣的。要序列化:prefs.edit()。putString(key,toJSONString(treemap))。反序列化:TreeMap treemap = new TreeMap((Map)fromJson(prefs.edit()。getString(key))) –