2017-02-20 19 views
0

在應用中使用了ConcurrentHashMap和Integer值作爲鍵值和自定義對象作爲值。當執行應用程序時,我在> kitkat版本設備中觀察到映射按鍵以降序排序,在os版本4.4.2的平板電腦中,它按值對象的地址排序。任何人都可以讓我明白這一點嗎?平板電腦和Nexsus中的ConcurrentHashMap的差異性能

例如:在設備: {1,@ 3456} {3,@ 2345} 在片: {3,@ 2345} {1,@ 3456}

+1

地圖根本沒有排序,你需要使用保持排序的版本,比如'TreeMap'。如果您真的需要concurent,請查看https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentSkipListMap.html – Than

+1

ConcurrentHashMap不保證任何順序,不依賴於設備或OS – Dimezis

回答

1

我想你可以考慮看這movie,其中Colt McAnlis給出了關於地圖的很好的解釋。

[編輯]

這部影片講

優化你的Android應用程序的性能有很多事情要做,你是如何管理你的記憶;多數情況下,這裏的問題可能來自使用集合,這些集合在記憶方面可能並不節儉。

+1

版本請提供更多有關這些鏈接的內容,如http://stackoverflow.com/help/how-to-answer中所述:'爲鏈接提供上下文 鼓勵與外部資源的鏈接,但請添加上下文圍繞鏈接,所以你的同行用戶會有一些想法是什麼,爲什麼它在那裏。如果目標網站無法訪問或永久離線,請始終引用重要鏈接中最相關的部分 – Than

相關問題