目前还没有寻找任何代码帮助,只是一些建议。
我正在设计一个调度器,它接受文本文件输入,并为所有球队安排每周的比赛。我已经让它工作了,现在我正在考虑扩展它以保持结果。目前,我把所有的团队都读到了一个列表中。并使用Collections.rotate旋转列表以随机化灯具。
我在考虑使用地图来保存团队和胜利的数量,但是旋转似乎不适用于地图。有没有我遗漏的类似功能,或者我忽略的东西?
发布于 2013-07-11 22:33:33
您可能不想旋转Map本身,但听起来您想要做的是旋转Map键的视图。
所以在伪代码中,你可以这样做
//make a copy of the keys of the map
List keys = new ArrayList(yourmap.keys())
Collections.rotate(keys)
//iterate over the keys of the map in the new rotated order
for key in keys:
Object value = yourmap.get(key)
// do something with this value发布于 2013-07-11 22:31:36
在JDK中有3种主要的、非专门化的Map接口实现:
没有排序的
HashMap -这对基于某个比较器排序的youTreeMap没有帮助-可能不容易适应按插入顺序或访问顺序排序的caseLinkedHashMap 在您的例子中,您可以使用使用access order的LinkedHashMap (使用a special construtor with the parameter accessOrder set to true创建),并且每次您访问其中一个项时,它将自动重新排序到映射的尾部。完整的迭代周期将保持顺序不变。
发布于 2013-07-11 22:42:56
旋转可能适用于LinkedHashMap,这是如何将地图旋转一个元素的方法
Iterator<Entry> i = m.entrySet().iterator();
Entry e = i.next();
i.remove();
m.put(e.getKey(), e.getValue());https://stackoverflow.com/questions/17596003
复制相似问题