【发布时间】:2020-11-05 19:37:16
【问题描述】:
我有一个关于 Collections API 二进制搜索和排序方法声明的查询。
binarySearch 中的 list 参数有上限通配符使用。
但是sort 方法中的list 参数不使用上限通配符。为什么这些不同?
对于sort,list 不使用上限通配符。
static <T> void sort(List<T> list, Comparator<? super T> c)
对于binarySearch,list 使用上限通配符。
static <T> int binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
我想知道如果sort 方法中不需要上限,为什么这里需要上限。
【问题讨论】:
-
binarySearch()只需要从传递的List中读取,而sort()需要交换元素,因此需要从List中读取和写入