【发布时间】:2013-10-04 14:05:01
【问题描述】:
我有一些课程,我需要为此实施
compareTo
我需要特定的顺序,例如(伪代码):
static List: item1 item2 item3 ...
我想用
List.indexOf(itemN) and compare to List.indexOf(itemM)
这个解决方案可以接受吗?
【问题讨论】:
标签: java list class indexing comparable
我有一些课程,我需要为此实施
compareTo
我需要特定的顺序,例如(伪代码):
static List: item1 item2 item3 ...
我想用
List.indexOf(itemN) and compare to List.indexOf(itemM)
这个解决方案可以接受吗?
【问题讨论】:
标签: java list class indexing comparable
是的,这是可以接受的,但除非您的列表非常小,否则效率会非常低。实际上,每次比较两个元素时,它都必须遍历列表以找到第一个元素的索引,然后再次迭代以找到另一个元素的索引。这将是非常低效的。
您最好将List<Item> 转换为HashMap<Item, Integer>,以保存列表中每个项目的索引。或者使用 Guava 的 explicit ordering,它会为您做到这一点。
【讨论】: