我遇到以下問題,因此我想要一個體面的解決方案。
將地圖與集合同步的最佳複雜性
我有一個HashMap,它包含一些String(email)和object(Person)形式的對象。
如下所述該映射通過集合經由方法updatePersonList(集合列表)填充:每當一個新的集合是通過上述方法接收到的地圖將基本上從集合的所有元素添加到
地圖。這就是所有的地圖需求,最新的收藏。應該從地圖中丟棄收集中的什麼。
現在,我想知道我怎麼能有效地更新地圖,因爲它可以讀取它上面可能有以下情況:
1.某些對象可以在地圖和收藏都可以找到因此,只有來自集合的新對象應該被保留,而不是全部。
2.映射中但不在集合中的對象應該被刪除。
複雜性方面的最佳解決方案是什麼?
經過一番調查後,我從地圖中刪除了所有對象,並添加了集合中的所有對象。如果有人知道一些更好的東西,如果它可以共享的話會更好。
這就是我想到的,因爲據我所知,在刪除數據時,地圖會縮小並縮小其大小,添加期間它會在添加數據後調整大小。這可能不是如此的記憶表現。糾正我,如果我錯了。 –
@Andrei T:因爲Map中的元素被刪除並且新的元素被創建,所以會有更多的垃圾→如果你刪除了空洞圖並創建一個新的垃圾收集,那麼經常是一個垃圾收集。但是如果這對你的應用程序有明顯的影響,那麼只有在比較兩個實現並對它們進行分析後才能知道。 – MrSmith42