我有String[]阵列喜欢
{"3","2","4","10","11","6","5","8","9","7"}
Run Code Online (Sandbox Code Playgroud)
我想按数字顺序对其进行排序,而不是按字母顺序排序.
如果我使用
Arrays.sort(myarray);
Run Code Online (Sandbox Code Playgroud)
我知道了
{"10","11","2","3","4","5","6","7","8","9"}
Run Code Online (Sandbox Code Playgroud)
代替
{"2","3","4","5","6","7","8","9","10","11"}
Run Code Online (Sandbox Code Playgroud)
vik*_*eve 21
尝试自定义Comparator,如下所示:
Arrays.sort(myarray, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
}
});
Run Code Online (Sandbox Code Playgroud)
希望你喜欢!
我认为迄今为止将Strings转换为s的最简单和最有效的方法int:
int[] myIntArray = new int[myarray.length];
for (int i = 0; i < myarray.length; i++) {
myIntArray[i] = Integer.parseInt(myarray[i]);
}
Run Code Online (Sandbox Code Playgroud)
然后对整数数组进行排序。如果您确实需要,您可以随时转换回来:
for (int i = 0; i < myIntArray.length; i++) {
myarray[i] = "" + myIntArray[i];
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用Comparator接口来准确地规定如何比较元素,但这可能相当于将每个String值转换为int无论如何 - 使上述方法更加有效。