-3
我想按升序对ArrayList进行排序,但希望将项目从一个字符开始(例如:说'S')放在顶部。我试图用比较器来实现这一点。按升序对ArrayList进行排序并给出字符优先级(Java)
Collections.sort(mSearchHolder.get(1).contactList, new Comparator<SearchData>() {
@Override
public int compare(SearchData s1, SearchData s2) {
int returnValue = 0;
if(!s1.getName().toLowerCase().startsWith(search.toLowerCase())
&& !s2.getName().toLowerCase().startsWith(search.toLowerCase())) {
returnValue = s1.getName().compareToIgnoreCase(s2.getName());
} else if(s1.getName().toLowerCase().startsWith(search.toLowerCase())
&& s2.getName().toLowerCase().startsWith(search.toLowerCase())) {
returnValue = s1.getName().compareToIgnoreCase(s2.getName());
} else {
if(s1.getName().toLowerCase().startsWith(search.toLowerCase())) {
returnValue = 1;
} else if(s2.getName().toLowerCase().startsWith(search.toLowerCase())) {
returnValue = -1;
}
}
return returnValue;
}
});
这不起作用。有什么建议么?
谢谢。
什么不工作?预期的产出是什么,你得到了什么产出? – Eran
“aa”和“as”的输出应该是什么? –