2

有没有什么方法可以在不使用循环的情况下ArrayListJava中搜索,因为我有很多要搜索的集合,并且使用循环进行搜索需要很长时间。

4

2 回答 2

5

如果您保持列表排序,则可以使用以下方法更快地搜索它们

Collections.binarySearch(array, key);

在你最喜欢的java.util.Collections类中。

否则,您可能需要查看 TreeSet 和 HashSet。

但也许你可以改进你的整体算法?还是建立索引

于 2012-11-28T19:11:38.583 回答
2

如果您的数组列表的元素没有按任何特定顺序排列,那么您必须以一种或另一种方式遍历列表。

如果数组列表没有改变,一种可能性可能是对其进行预排序,然后重复使用二分查找

否则,您将需要使用不同的数据结构,例如Set.

于 2012-11-28T19:09:52.767 回答