国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

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

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

問題描述

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

問題解答

回答1:

截圖紅字的理解基本沒錯(cuò)但不完全,正如 @jokester 說的,你沒把代碼貼全,注意第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類型,所有基本類型的封裝對(duì)象(還有Long、Double、Boolean等),以及String都,都實(shí)現(xiàn)了Comparable,所以當(dāng)然可以強(qiáng)轉(zhuǎn)。

最后留一個(gè)問題給大家,TreeMap創(chuàng)建時(shí)帶Comparator的話,為什么要指定類型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
主站蜘蛛池模板: 横山县| 尚志市| 松原市| 永仁县| 桐城市| 石棉县| 永福县| 育儿| 汉沽区| 永昌县| 五家渠市| 栖霞市| 桓台县| 甘德县| 三门县| 富宁县| 苍南县| 苍梧县| 盐亭县| 麻城市| 柳江县| 米易县| 咸宁市| 颍上县| 西华县| 静安区| 高阳县| 兴安盟| 常山县| 山西省| 三都| 景洪市| 南京市| 理塘县| 东丽区| 光山县| 宜城市| 静宁县| 体育| 姜堰市| 长海县|