第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么我需要可比較的接口而不是在 java 中創(chuàng)建我的自定義方法

為什么我需要可比較的接口而不是在 java 中創(chuàng)建我的自定義方法

暮色呼如 2021-10-28 14:28:01
Comparable是一個(gè)可以實(shí)現(xiàn)到類中的接口,我不明白的是為什么我需要實(shí)現(xiàn)接口才能Arrays.sort在我的類中使用。我可以調(diào)用 ,Arrays.sort而不必在Comparable我的類中實(shí)現(xiàn)接口。此外,接口無論如何都提供了一個(gè)空方法,以便我可以指定自己的操作。我已經(jīng)閱讀了關(guān)于可比性的其他答案,他們都說原因是為了讓我的編碼更容易。怎么那么容易呢compareTo,我必須定義一個(gè)空代碼,所以無論如何這有什么幫助,我可以定義自己的代碼并將其命名為我想要的任何名稱。我很確定這背后有一個(gè)很好的理由。然而,我無法理解它,這真的讓我感到不安,有人可以用“不是代碼示例”的例子向我解釋它。請(qǐng)用非常簡單的英語,以及為什么重要以及它如何節(jié)省我的時(shí)間。提前致謝
查看完整描述

3 回答

?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

以這些數(shù)字為例:4, 7, 2, 7, 42, 3, 4 ,9 和 5。

假設(shè)我要求你對(duì)它們進(jìn)行排序。你會(huì)怎么做?您是按升序、降序還是使用其他方法對(duì)它們進(jìn)行排序。

那么答案是,您不會(huì)知道如何對(duì)它們進(jìn)行排序,因?yàn)槲覜]有為您提供足夠的信息。

Arrays.sort處于類似的未知位置。你想讓它為你排序一些東西,但簡單地說,Arrays.sort知道如何排序。您必須解釋Arrays.sort您希望數(shù)組如何排序。你解釋這個(gè)的方式Arrays.sort是實(shí)現(xiàn)Comparable接口。

至于這種設(shè)計(jì)如何為您節(jié)省時(shí)間。嗯,它以一種微妙的方式這樣做:如果您實(shí)現(xiàn)Comparable,那么您會(huì)自動(dòng)使用任何知道如何使用 的方法(想想算法)Comparable。這同樣適用于實(shí)現(xiàn)其他接口。


查看完整回答
反對(duì) 回復(fù) 2021-10-28
?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

public static void sort(Object[] a)在所有對(duì)象必須實(shí)現(xiàn)的Javadoc指定的方法Comparable接口。這是在實(shí)現(xiàn)中假設(shè)的,您可以在其中找到下一行。

Comparable pivot = (Comparable) a[start];

如果您的元素未實(shí)現(xiàn)可比較,則會(huì)產(chǎn)生運(yùn)行時(shí)異常。

其他sort方法要么用于本質(zhì)上具有可比性的類型(例如,原始類型),要么需要您提供Comparator.


查看完整回答
反對(duì) 回復(fù) 2021-10-28
?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

盡管您有Arrays.sort((T[] a, Comparator<? super T> c))接受顯式的方法Comparator,但您不希望定義內(nèi)聯(lián)Comparator或創(chuàng)建特殊Comparator類來保持代碼緊湊和可讀。

休息是你的選擇。你有兩種選擇,選擇適合你的。


查看完整回答
反對(duì) 回復(fù) 2021-10-28
  • 3 回答
  • 0 關(guān)注
  • 158 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)