Java 算法复杂度分析与优化
1. Java 中的比较器
在 Java 中,比较器(Comparator)是一个强大的工具,可用于自定义对象的排序规则。例如,若要按 Point
对象的 x
坐标降序对 Point
对象数组进行排序,可以使用如下代码:
Arrays.sort(points, Collections.reverseOrder(new PointComparator()));
执行上述代码后,数组的排序结果可能如下: (4, –2), (3, 9), (3, 7), (–1, 15)
。
Java 类库中还有许多地方会用到比较器,以下是一些常用的比较器和方法总结:
| 比较器/方法 | 描述 |
| — | — |
| Arrays.binarySearch(array, value, comparator)
| 假设数组当前已按给定比较器的顺序排序,返回给定值在数组中的索引;若未找到给定值,则返回负数。 |
| Arrays.sort(array, comparator)
| 按给定比较器的顺序对给定数组进行排序。 |
| Collections.binarySearch(list, value, comparator)
| 假设列表当前已按给定比较器的顺序排序,返回给定值在列表中的索引;若未找到给定值,则返回负数