2017-05-27 134 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