我想排序ArrayList<String>
使用自定義Comparator
。我的要求是,XX
字符串應該是第一個字符串,其他人應遵循自然順序。排序ArrayList <String>與自定義比較器
我需要:[XX,XX,1,5,9,A,d,G,Q,Z]
我所得到的是[1,5,9,A,d,G, Q,Z,XX,XX]
以下是我的代碼:
public class Test {
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
list.add("Z");
list.add("5");
list.add("D");
list.add("G");
list.add("XX");
list.add("9");
list.add("Q");
list.add("XX");
list.add("1");
list.add("A");
Collections.sort(list, new CustomComparator());
System.out.println(list);
}
}
class CustomComparator implements Comparator<String>
{
@Override
public int compare(String o1, String o2) {
if(o2.equals("XX")) {
return -1;
}
return o1.compareTo(o2);
}
}
EDIT:如果我改變比較器邏輯,用於:
@Override
public int compare(String o1, String o2) {
if(o2.equals("XX")) {
return 1;
}
return o1.compareTo(o2);
}
我越來越:
[1,XX,9,A,Q,XX,5,d,G,Z]
請讓我知道如何着手。提前致謝。
恭喜你,你的解決方案是唯一有效的一個 – nikis
@nikis謝謝你,我習慣了這樣的比較,因爲我的僱主經常會問異國情調和過於複雜的比較策略,這裏只是非常簡化;-) –