Collections.sort(list, new Comparator<String>() {
public void compare(String one, String two) {
return getNumber(one) - getNumber(two);
}
private int getNumber(String str) {
return Integer.parseInt(one.split(" ")[0]);
}
}
我真的不知道什么可以更简单 .
1
如果没有显式的Comparator,请尝试使用Java 8的Lambda功能:
//Assuming that the list variable is a string that looks like e.g. "1 10 2 5"
Arrays.sort(list.split(" "),
(String a, String b) -> { return Integer.valueOf(a).compareTo(Integer.valueOf(b)) };
);
//Assuming that the list variable is an array list of Strings
Collections.sort(list,
(String a, String b) -> { return Integer.valueOf(a).compareTo(Integer.valueOf(b)) };
);
3 回答
最简单的方法是使用比较器:
我真的不知道什么可以更简单 .
如果没有显式的Comparator,请尝试使用Java 8的Lambda功能:
您需要在该类中创建一个具有
String
字段的类,并实现compareTo
方法并编写比较逻辑 .在
ArrayList
中使用此类对象,然后使用Collections.sort
方法 .