可以接受使用静态对象在java中实现可比性吗?

时间:2013-10-04 14:05:02

标签: java list class indexing comparable

我有一些课程,我需要实施

compareTo

我需要特殊的顺序,如(伪代码):

static List: item1 item2 item3 ...

我想用

List.indexOf(itemN) and compare to List.indexOf(itemM)

此解决方案是否可以接受?

1 个答案:

答案 0 :(得分:3)

是的,这是可以接受的,但除非你的名单很小,否则效率会非常低。实际上,每次比较两个元素时,都必须遍历列表以查找第一个元素的索引,然后再次迭代以查找另一个元素的索引。这将是非常低效的。

您最好将List<Item>转换为保存列表中每个项目索引的HashMap<Item, Integer>。或者使用Guava的explicit ordering,它会为你做到这一点。

相关问题