【发布时间】:2017-05-27 14:08:05
【问题描述】:
所以我想将聊天元素存储在集合中,但我仍然不知道要使用什么集合。 就像 WhatsApp 的聊天列表一样,它按日期排序,但每个聊天的属性/参数可以随时更改(聊天静音/标记...)
- 元素(ID、日期、不同参数)
-
需要按日期排序[一直]
=> TreeSet 是最优的
-
不允许重复条目[不经常发生]
=> Treeset 是最优的
-
参数在变化[一直]
(按Id迭代,设置具体参数)
=> 我认为 ArrayList 是更好的选择
-
Android 应用,内存使用量越少越好
=> Arraylist 是最优的
目前我正在使用 Arraylists,但我不确定第 4 点是否正确,如果是,是否相关。
【问题讨论】:
-
这真的取决于你将如何使用容器,所以你的描述并不能真正告诉我们足以推荐一个。您的插入顺序是否与排序顺序不同(您是否将具有昨天日期的元素插入到具有今天日期的容器中)?为什么不能有两个具有相同日期的元素,什么时候发生?你经常使用
contains(...)吗?你经常使用iterator()吗?以此类推。 -
通常我只是插入带有今天日期的元素或将一些元素设置为今天的日期...我可以拥有具有相同日期但不具有相同 ID 的元素...我使用 iterator() 更多经常比包含(..)
-
好吧,你应该更新你的问题,提供更多关于你正在编写什么样的程序以及你正在用这个容器做什么类型的事情的信息。就目前而言,几乎可以制作任何容器来满足您给出的要求。你可以看到你已经收到了两个完全不同的建议,使用
HashMap和PriorityQueue,这表明我们可能不知道你现在应该使用什么。也可能是您应该使用多个容器。 -
更新了,请再看看:)
标签: java performance arraylist set treeset