Java集合中的搜索算法

时间:2017-04-06 10:47:55

标签: java collections

这个问题可能已得到解答。我找不到它。

在Java Collections中,我总是使用Collections.sort(coll),然后搜索。我的问题是,集合总是会执行二进制搜索还是内部决定。集合是否存储任何标识符以在线性搜索和二进制搜索之间进行决定。

1 个答案:

答案 0 :(得分:3)

当您查看Collections.sort(coll)的Java 8源代码时,它使用了Arrays.sort(Object[] a)方法。如果您没有将java.util.Arrays.useLegacyMergeSort作为系统属性传递。否则,它将使用旧式合并排序。

Arrays.sort(Object[] a)使用TimSort,这是一种战略算法,可根据给定数组的顺序和大小选择插入排序或合并排序。您可以在以下链接中找到详细信息: