在應用中使用了ConcurrentHashMap和Integer值作爲鍵值和自定義對象作爲值。當執行應用程序時,我在> kitkat版本設備中觀察到映射按鍵以降序排序,在os版本4.4.2的平板電腦中,它按值對象的地址排序。任何人都可以讓我明白這一點嗎?平板電腦和Nexsus中的ConcurrentHashMap的差異性能
例如:在設備: {1,@ 3456} {3,@ 2345} 在片: {3,@ 2345} {1,@ 3456}
在應用中使用了ConcurrentHashMap和Integer值作爲鍵值和自定義對象作爲值。當執行應用程序時,我在> kitkat版本設備中觀察到映射按鍵以降序排序,在os版本4.4.2的平板電腦中,它按值對象的地址排序。任何人都可以讓我明白這一點嗎?平板電腦和Nexsus中的ConcurrentHashMap的差異性能
例如:在設備: {1,@ 3456} {3,@ 2345} 在片: {3,@ 2345} {1,@ 3456}
我想你可以考慮看這movie,其中Colt McAnlis給出了關於地圖的很好的解釋。
[編輯]
這部影片講
優化你的Android應用程序的性能有很多事情要做,你是如何管理你的記憶;多數情況下,這裏的問題可能來自使用集合,這些集合在記憶方面可能並不節儉。
版本請提供更多有關這些鏈接的內容,如http://stackoverflow.com/help/how-to-answer中所述:'爲鏈接提供上下文 鼓勵與外部資源的鏈接,但請添加上下文圍繞鏈接,所以你的同行用戶會有一些想法是什麼,爲什麼它在那裏。如果目標網站無法訪問或永久離線,請始終引用重要鏈接中最相關的部分 – Than
地圖根本沒有排序,你需要使用保持排序的版本,比如'TreeMap'。如果您真的需要concurent,請查看https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentSkipListMap.html – Than
ConcurrentHashMap不保證任何順序,不依賴於設備或OS – Dimezis