看他們寫的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????????
2016-06-15
2016-05-29
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();2016-05-23
是不是compareTo比較的是integer而不能是int,而integer.valueOf等于是強轉?是嗎?
2016-05-23
首先你看看API文檔,這個
public int compareTo(Integer anotherInteger)
方法是int的包裝類Integer的方法,參數也是一個Integer的實例對象;
其次,public static Integer valueOf()返回的真好是一個Integer的實例對象;
最后,你重寫的public?int?compareTo(Card?o)返回的是一個整數類型的值,而我上述中提到的方法compareTo()返回的也是個整數;
懂了沒?