2017-05-27 102 views
-2

所以我想让聊天元素存储在一个集合中,我仍然不知道要使用什么集合。 它就像它是由日期,但性质分类的WhatsApp的Chatlist /每个聊天的参数,随时都可以(聊天静音/标...)TreeSet vs Arraylist:修改元素

  1. 元素(ID,日期,不同的参数)
  2. 需要由日期[所有的时间]进行排序

    => TreeSet中是最佳

  3. 无重复条目允许[犯规经常发生]

    => TreeSet中是最佳

  4. 参数被改变[所有的时间]

    (由编号迭代,设置具体参数)

    =>我认为ArrayList是更好的选择

  5. Android应用程序,使用更少的内存最好

    =>的ArrayList是最佳

目前我使用的ArrayList但是我真的不知道,如果第4点是真实的,如果是的话,如果它这是相关的。

+0

这真的取决于你如何使用容器,所以你的描述并没有真正告诉我们足够推荐一个。您的广告订单与排序顺序不同(您是否将具有昨天日期的元素插入到具有今天日期的容器中)?为什么你不能有两个相同的日期元素,什么时候发生?你经常使用'contains(...)'吗?你经常使用'iterator()'吗?等等。 – Radiodef

+0

通常我只是插入今天的日期或设置一些元素今天的日期...我可以有相同的日期,但不具有相同的ID的元素...我更频繁地使用iterator()比包含(..) – Ayox

+0

那么,您应该更新您的问题,提供更多关于您正在编写的程序类型以及您使用此容器执行哪些操作的更多信息。就目前而言,几乎所有的容器都可以满足您的要求。你可以看到你已经收到了两个非常不同的建议,使用'HashMap'和'PriorityQueue',这表明我们可能不知道你现在应该使用什么。也可能是您应该使用多个容器。 – Radiodef

回答

-1

可以使用HashMap

设计的散列码发生器,它根据日期的数据映射中,从日期字符串取部件,并将其分配到ArrayList(内部使用),以便它总是按照日期递增的顺序保存。使用ID作为密钥进行映射。

迭代凭身份证

使用HashMap中,简化了参数的获取和经常改变它们。

内存将只使用一次。

+0

'HashMap'是无序的。特别是,它可以在添加新元素时随意重新排列元素。没有办法生成哈希代码,这会导致元素被排序。 – Andreas