我试图理清一个ArrayList<String>
使用自定义Comparator
。 我的要求是, XX
字符串应该是第一个字符串,其他人应该遵循自然顺序。
我需要:[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);
}
}
编辑 :如果我改变比较器逻辑,用于:
@Override
public int compare(String o1, String o2) {
if(o2.equals("XX")) {
return 1;
}
return o1.compareTo(o2);
}
我正进入(状态 :
[1,XX,9,A,Q,X-X,5,d,G,Z]
请让我知道如何着手。 提前致谢。