はJavaでCollections.binarySearch
の定義です:私はそれを理解したようCollections.binarySearchの2つの一般的な署名はどのように異なるのですか?ここ
static <T extends Comparable<? super T>> int binarySearch(List<T> list, T key)
static <T> int binarySearch(List<T>, T x, Comparator<? super T>)
:
static <T> int binarySearch(List<? extends Comparable<? super T> list, T key)
static <T> int binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
はどのように彼らは(Collections.sort
に似ています)以下の定義は異なります
最初の定義では、値のリストの中でタイプTのキーを検索することができます。値のタイプは、タイプTのインスタンスを比較する方法を知っている、 "タイプ"です。
Comparator
を使用して、タイプTのタイプのいずれかを比較する方法を知っているタイプのタイプのキーのうち、タイプがTタイプと同じか "低い"タイプのキーを検索できます「上」タイプ。
基本的に、私は理解していないことは、リストの内容がキーと同じタイプを持つように強制されないのはなぜですか?
別の方法: ' int型binarySearch(一覧、Comparableを super T>)' –
ZhongYu