亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

看他們寫的compareTO方法中

public?int?compareTo(Card?o)?{

????????if?(Values.indexOf(this.value)?==?Values.indexOf(o.value))?{

????????????return?Integer.valueOf(Colors.indexOf(this.color)).compareTo(Integer.valueOf(Colors.indexOf(o.color)));

????????}?else?{

????????????return?Integer.valueOf(Values.indexOf(this.value)).compareTo(Integer.valueOf(Values.indexOf(o.value)));

????????}

????}

}



為什么必須用integer.valueOf????????

正在回答

4 回答

compareTo方法是Comparable接口的抽象方法,Integer類已經實現了,所以直接使用,
而他自定義的Card類要自己實現Comparable接口,所以才有這個CompareTo方法。

int是基本數據類型,并不是對象,你應該考慮的是這里填入int會不會自動裝箱成Integer,
不能的話肯定要用Integer.valueOf轉成Integer對象。


0 回復 有任何疑惑可以回復我~

Values.indexOf(this.value)

這句話是錯的,運行不了???? values.indexOf() 能用于字符串中,但不可以是字符串數組,如果想用

改成這樣

????public?final?String[]?colors?=?{?"紅桃",?"黑桃",?"方塊",?"梅花",?"大"?};
????public?final?String[]?values?=?{?"2",?"3",?"4",?"5",?"6",?"7",?"8",?"9",?"10",?"J",?"Q",?"K",?"A",?"王"?};
????
????public?String?VVV?=?"2345678910JQKA王?";
????public?String?CCC?=?"梅花方塊黑桃紅桃小大?";
????@Override
????public?int?compareTo(Card?o)?{
????????//?TODO?Auto-generated?method?stub
?????????if?(VVV.indexOf(this.value)?!=?VVV.indexOf(o.value))?{
????????????????return?Integer.valueOf(VVV.indexOf(this.value)).compareTo(Integer.valueOf(VVV.indexOf(o.value)));
????????????}?else?{
????????????????return?Integer.valueOf(CCC.indexOf(this.color)).compareTo(Integer.valueOf(CCC.indexOf(o.color)));
????????????}
????}
????
????values?和?colors?是數組??而CCC和VVV才是字符串
????或者把字符串數組強轉為字符串也可以
????StringBuilder?str1?=?new?StringBuilder("");
???for?(int?i=0;?i<values.length;?++i)?{
???????str1?+=?values[i];
???}
???stri.toString();


0 回復 有任何疑惑可以回復我~

是不是compareTo比較的是integer而不能是int,而integer.valueOf等于是強轉?是嗎?

0 回復 有任何疑惑可以回復我~

5742b9a30001ce7905000152.jpg

5742b9a4000129ab05000296.jpg

首先你看看API文檔,這個

public int compareTo(Integer anotherInteger)
方法是int的包裝類Integer的方法,參數也是一個Integer的實例對象;

其次,public static Integer valueOf()返回的真好是一個Integer的實例對象;

最后,你重寫的public?int?compareTo(Card?o)返回的是一個整數類型的值,而我上述中提到的方法compareTo()返回的也是個整數;

懂了沒?

0 回復 有任何疑惑可以回復我~
#1

qq_之恩赫奧丶_0 提問者

是不是compareTo比較的是integer而不能是int,而integer.valueOf等于是強轉?是嗎?
2016-05-24 回復 有任何疑惑可以回復我~
#2

ixenos 回復 qq_之恩赫奧丶_0 提問者

形參是Card類對象 public int compareTo(Card o)
2016-06-15 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409767    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

看他們寫的compareTO方法中

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號