Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个带有过滤行 ID 的整数集合,我试图在其中搜索序列/范围以优化 MySQL 选择查询。给你举个例子:
Integer-Collection 可以非常分散:
[1,2,88,101,200] = Sequence(1-2,88,101,200)
或者非常完全:
[1,2,3,4,..,198,199,200] = Sequence(1-200)
是否有任何 Java 算法可以在集合中查找序列或总体上改进我的阅读模式?
你的收藏品有多长?除非您有数百万个项目,否则将集合完全加载到内存中、对其进行排序然后扫描范围可能是最快的。
在排序列表中,查找范围是微不足道的。只需依次扫描即可;如果下一个元素不是前一个元素 + 1,则一个范围刚刚结束,另一个范围开始。