【发布时间】:2011-12-27 08:08:06
【问题描述】:
我想知道是否有一个List 实现允许快速contains。我正在使用很长的List,但我无法切换到Set,因为我需要按索引访问。我可以忽略性能,它现在可能可以接受,将来可能可以接受,也可能不可以接受。我可以创建一个HashSet 并对两者进行所有修改操作,但是手动操作非常无聊且容易出错。
我知道不可能有一个像 List 和 Set 一样工作的类(因为 equals 语义不同),但我想知道是否有 List 实现 RandomAccess 并使用 @987654331 @ 用于加速 contains.
【问题讨论】:
-
哈希列表应该很快,但它不是标准 JAVA API 的一部分
-
你能保持你的列表排序并使用二进制搜索包含吗?
-
他需要通过索引进行随机访问,如果插入时索引发生变化,这是不可能的。