我有一些课程,我需要实施
compareTo
我需要特殊的顺序,如(伪代码):
static List: item1 item2 item3 ...
我想用
List.indexOf(itemN) and compare to List.indexOf(itemM)
此解决方案是否可以接受?
答案 0 :(得分:3)
是的,这是可以接受的,但除非你的名单很小,否则效率会非常低。实际上,每次比较两个元素时,都必须遍历列表以查找第一个元素的索引,然后再次迭代以查找另一个元素的索引。这将是非常低效的。
您最好将List<Item>
转换为保存列表中每个项目索引的HashMap<Item, Integer>
。或者使用Guava的explicit ordering,它会为你做到这一点。