0
不知道這是如何不穩定。這在大多數情況下工作正常,但會拋出IllegalArgumentException與一些查詢。獲取java.lang.IllegalArgumentException:比較方法違反了它的一般合約!與排序算法應該100%穩定
就是這樣,想不到更多的相關細節。
private static void sortSearchResults(List<Map> l){
Comparator<Map> comp = new Comparator<Map>(){
public int compare(Map a,Map b){
int aa=0,ba=0,as=0,bs=0;
try{
aa = Integer.parseInt(""+a.get("activity"));
}catch(Exception ex){
}
try{
ba = Integer.parseInt(""+b.get("activity"));
}catch(Exception ex){
}
try{
as = Integer.parseInt(""+a.get("searchscore"));
}catch(Exception ex){
}
try{
bs = Integer.parseInt(""+b.get("searchscore"));
}catch(Exception ex){
}
if(as>bs)
return -1;
else if(bs<as)
return 1;
else{
if(aa>ba)
return -1;
else if(aa<ba)
return 1;
else
return 0;
}
}
public boolean equals(Object o){
return o==this;
}
};
Collections.sort(l,comp);
}
不要使用空的catch塊。 –
爲什麼不呢?我真的不想對異常做任何事情,當searchscore或activity爲null時,它會被拋出。 – Seppo420
在網上搜索。也可以看看這裏。 http://stackoverflow.com/questions/1234343/why-are-empty-catch-blocks-a-bad-idea –