1 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
這只是為了糾正您對(duì)比較方法的實(shí)現(xiàn),
而不是你目前的方法,
@Override
public int compare(Integer o1, Integer o2) {
int len1 = o1.toString().length();
int len2 = o2.toString().length();
if (len1==len2) {
return o1.compareTo(o2);
} else {
return len1-len2;
}
}
您應(yīng)該像這樣使用 Integer 類(lèi)的 compare 方法。簡(jiǎn)單、安全且易于管理。
@Override
public int compare(Integer o1, Integer o2) {
return Integer.compare(o1, o2);
}
這樣,如果您嘗試執(zhí)行 len1-len2 之類(lèi)的操作,它就不會(huì)讓您遇到整數(shù)溢出情況。想象一下,如果 len1 已經(jīng)是最小的負(fù)整數(shù),并且您進(jìn)一步嘗試從中減去一些東西?
添加回答
舉報(bào)