久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - TreeSet的自然排序問(wèn)題,也與多態(tài)有關(guān)

瀏覽:137日期:2024-01-21 15:15:53

問(wèn)題描述

java - TreeSet的自然排序問(wèn)題,也與多態(tài)有關(guān)

問(wèn)題解答

回答1:

截圖紅字的理解基本沒(méi)錯(cuò)但不完全,正如 @jokester 說(shuō)的,你沒(méi)把代碼貼全,注意第561行 else 前面的部分。實(shí)際上,TreeMap<T>或TreeSet<T>,排序依據(jù)有兩種情況:

創(chuàng)建時(shí)帶了Comparator<? super T>,那么排序依據(jù)這個(gè)Comparator;

創(chuàng)建時(shí)不帶Comparator<? super T>,那么要求T必須實(shí)現(xiàn)Comparable。

所以看TreeSet<Person>的情況,如果創(chuàng)建時(shí)帶了Comparator<Person>,那么Person完全可以不實(shí)現(xiàn)Comparable。

另外,Integer本身實(shí)現(xiàn)了Comparable類(lèi)型,所有基本類(lèi)型的封裝對(duì)象(還有Long、Double、Boolean等),以及String都,都實(shí)現(xiàn)了Comparable,所以當(dāng)然可以強(qiáng)轉(zhuǎn)。

最后留一個(gè)問(wèn)題給大家,TreeMap創(chuàng)建時(shí)帶Comparator的話,為什么要指定類(lèi)型Comparator<? super K>,而不是Comparator<K>或Comparator<? extends K>?參閱TreeMap的一個(gè)構(gòu)造函數(shù):

public TreeMap(Comparator<? super K> comparator);

回答2:

正確

因爲(wèi) class Integer implements Comparable<Integer>

標(biāo)簽: java
主站蜘蛛池模板: 孝昌县| 湖口县| 深圳市| 枝江市| 三河市| 库伦旗| 西宁市| 山丹县| 会同县| 沛县| 海原县| 开江县| 开鲁县| 合江县| 内丘县| 石渠县| 闸北区| 南江县| 迁西县| 宁化县| 姚安县| 镇沅| 营口市| 广丰县| 汉源县| 来宾市| 佛山市| 荆门市| 望江县| 巢湖市| 诸暨市| 辽阳县| 安多县| 韶山市| 婺源县| 克拉玛依市| 阿拉善盟| 加查县| 大田县| 澄迈县| 临城县|