我有一些类(class),我需要实现
compareTo
我需要特定的顺序,例如(伪代码):
static List: item1 item2 item3 ...
我想使用
List.indexOf(itemN) and compare to List.indexOf(itemM)
这个解决方案可以接受吗?
最佳答案
是的,这是可以接受的,但是除非你的列表非常小,否则效率会非常低。事实上,每次比较两个元素时,都必须迭代列表以查找第一个元素的索引,然后再次迭代以查找另一个元素的索引。这将是极其低效的。
你最好把List<Item>
改一下到 HashMap<Item, Integer>
保存列表中每个项目的索引。或者使用Guava的explicit ordering ,它会为您做到这一点。
关于java - 在java中使用静态对象来实现比较可以接受吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19183320/