【发布时间】:2021-08-25 23:36:22
【问题描述】:
我是 Java 新手,我正在尝试学习泛型。我尝试实现binarySearch() 方法的简单版本,该方法也可以在Collections 类中找到。我查看了方法签名,它是这样的:
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key) {
// definition
}
我想知道如果您将方法定义更改为此,上述方法是否仍然接受相同的数据类型:
public static <T extends Comparable<? super T>> int binarySearch(List<T> list, T key) {
// definition
}
如果不是,两者有什么区别?谢谢!
【问题讨论】:
-
首先,列表可以有与键类型不同的东西。您无法添加到列表中,并且密钥不可比较。
-
@matt 哦,我明白了。所以在第一个中,列表可以接受 T 的子类(不仅仅是 T),只要 T 实现 Comparable?
-
是的,List 与 List
.
标签: java generics binary-search