我有一个字符串数组
String [] my_array_list = { "SOMETHING1" , "SOMETHING2" , "ALCHOHAL",
"SOMETHING3" , "ALL", "SOMETHING4" };
现在,当我对此应用排序时,请说 Arrays.sort( my_array_list );
然后我得到这样的输出:
ALCHOHAL
ALL
SOMETHING1
SOMETHING2 ... etc.
现在这是我的观点。
如果我需要在字符串数组的索引 0 处使用 "ALL"
,我们需要做什么。即在我移出之前,总是需要在字符串数组的第一个位置处使用“ALL”
。
是否有任何排序方法,或者我们需要为此做一些其他事情。
最佳答案
一种优雅的方法是定义一个Comparator
,它比所有其他字符串更有利于您的"ALL"
字符串:
Arrays.sort(my_array_list, new Comparator<String>() {
private static final String FIRST = "ALL";
@Override
public int compare(String o1, String o2) {
if (o1.equals(FIRST)) {
return -1;
} else if (o2.equals(FIRST)) {
return 1;
} else {
return o1.compareTo(o2);
}
}
});
如果您有很多类似的排序要做,您可能希望将这个匿名 Comparator
重构为顶级类。添加一个接受“magic”单词并确保它在排序中排在第一位的构造函数将是微不足道的。
关于java - 对数组进行排序以获取索引 0 处的指定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19924616/