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

标签 java list class indexing comparable

我有一些类(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/

相关文章:

c++ - 为类设置返回值?

java - java中的getType()和getClass()有什么区别?

java - "Unable to start activity ComponentInfo{com.example/com.artifex.mupdfdemo.MuPDFActivity}: java.lang.NullPointerException"

java - 为什么 Netbeans 不签署某些 jar?

Python:遍历列表并删除重复项(不使用 Set())

r - 基于列类的列表内的子集数据框

c - C中ListNode中的指针

java - 使用 ClassLoader 加载的类无法访问已更改的变量

Java JUNG EdmondsKarpMaxFlow 陷入无限循环

python - 尝试将 3 个列表中的元素组合(连接)为一个新列表