我使用TreeMap类在其应用程序中存储消息信息及其优先级。我使用treeMap类来执行此操作,因为此类基于键值自动对元素进行排序,例如,我遇到这种情况:
enum Priority { HIGH, MEDIUM, LOW }
TreeMap<Priority,String> tMap = new TreeMap<Priority,String>();
我使用密钥(消息的优先级)根据优先级的严重性自动排序消息,但是问题是,在TreeMap中,密钥是唯一的,如果我尝试插入两个具有相同优先级的消息,则第一个消息将被覆盖... 。
如何更改此行为并禁用TreeMap的唯一约束?
是否有像TreeMap这样的类,允许为多个元素放置相同的Key?
如何更改此行为并禁用TreeMap的唯一约束?
你不能 键的唯一性是Map
接口的基本不变性。
是否有像TreeMap这样的类,允许为多个元素放置相同的Key?
您可以将其实现为a Map<Priority,List<String>>
并自己管理列表。如果(例如)您要按fifo顺序处理给定优先级的消息,则这是一个不错的选择。
另外,您可以使用一个MultiMap
类。例如来自Apache commons集合或Guava。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句