我有一个Java地图展望重新排序地图
Map<String, Attributes>
字符串将应用程序名和属性将是相关的属性。 (属性是一种自定义类型)。我需要根据用户订阅重新订购此地图。我沿着
- 发现用户已经订阅了
- 创建另一个地图
- 寻找每一个在原来的地图,这些应用程序,并在复制值到新地图应用的思路思考新订单
有人可以帮我了解如何实现这个吗?即使这是解决这个问题的最好方法?
非常感谢!
确定添加一个编辑来澄清一些评论。
原始地图包含所有可用的应用程序,它看起来像:
"app1", "attribute1, attribute2, attribute3"
"app2", "attribute1, attribute2, attribute3"
"app3", "attribute1, attribute2, attribute3"
"app4", "attribute1, attribute2, attribute3"
如果用户已经订阅APP 2和APP4,我想将它重新排序到:
"app2", "attribute1, attribute2, attribute3"
"app4", "attribute1, attribute2, attribute3"
"app1", "attribute1, attribute2, attribute3"
"app3", "attribute1, attribute2, attribute3"
,以便他们的订阅应用程序位于列表顶部(该列表用于填充Spring JSP页面)。因此,当用户看到应用程序页面时,他们可以首先看到他们拥有什么,还有什么可用。
“新订单”中的含义是什么?你是否需要按照可预测的顺序迭代Map键?如果是,`SortedMap`或`NavigableMap`可以满足您的需求。如果不是,请详细说明(也许,你的意思是“筛选”而不是“重新排序”)? – 2011-01-14 16:44:05
回声Viktor - Maps *通常*没有明确定义的顺序,因为通常使用它们来查找基于特定键的值。如果你不打算做任何基于关键字的查找,那么也许你不需要这是一个地图毕竟......要考虑的事情。 – 2011-01-14 16:48:28