2017-02-20 20 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

相关问题