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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么樹集在添加新元素之前不比較所有元素?

為什么樹集在添加新元素之前不比較所有元素?

天涯盡頭無女友 2022-09-22 19:56:59
我嘗試編寫一個存儲非相等對對象的程序,由2個字符串組成。就此而言,這對(約翰,鮑勃)被認為是等于(鮑勃,約翰)。我的等價和比較到實現(xiàn)應(yīng)該工作正常。為了檢查出了什么問題,我讓我的程序輸出為我嘗試添加的每個新對所做的比較??雌饋硐襁@樣:@Overridepublic boolean equals(Object o){    if (o==null){        return false;    }    final Pair other = (Pair) o;    return (this.compareTo(other)==0);}@Overridepublic int compareTo (Pair o){  if (this.first.equals(o.first)){      if (this.second.equals(o.second)){          System.out.println("equal: "+this.first+" "+this.second+" and  " + o.first+" "+o.second);          return 0;      }  }  else if (this.first.equals(o.second)){        if (this.second.equals(o.first)){            System.out.println("equal: "+this.first+" "+this.second+" and  " + o.first+" "+o.second);            return 0;        }  }    System.out.println(" not equal " +this.first+" "+this.second+" and  " + o.first+" "+o.second);  return -1;示例輸入: bob john john john john john john bob bob will john hohn如果我讓它運行,它將在每次試用后打印出TreeSat的大小以添加新元素。它還將打印 compareTo 方法中寫入的內(nèi)容。我添加了注釋來指定我的問題。   equal: bob john and  bob john    //Why comparing the first element at                                        all?1 not equal john john and  bob john2 not equal john john and  bob johnequal: john john and  john john2equal: john bob and  bob john2 not equal bob will and  bob john not equal bob will and  john john3 not equal john hohn and  john john    //no comparision of (john hohn) and                                        not equal john hohn and  bob will     //(bob john) why?4
查看完整描述

1 回答

?
慕妹3242003

TA貢獻1824條經(jīng)驗 獲得超6個贊

ONE:回答你的問題:TreeSet不需要比較所有元素,因為元素有一個定義的順序。考慮一本字典:在中間打開它,你會立即知道,你需要的單詞是在該頁面之前還是之后。您無需檢查字典的兩半。

:你的比較To()方法有問題??紤]兩個對象:

Pair a = Pair.of(1, 2);
Pair b = Pair.of(3, 4);

在這兩種情況下,您的 compareTo() 都將返回 -1,它不能:

a.compareTo(b) == -1
b.compareTo(a) == -1

從數(shù)學(xué)上講,您的關(guān)系“compareTo”沒有定義訂單,因此違反了API合約:

實現(xiàn)者必須確保所有 x 和 y 的 sgn(x.比較到 y)) == -sgn(y.比較到(x))。


查看完整回答
反對 回復(fù) 2022-09-22
  • 1 回答
  • 0 關(guān)注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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