在java中以任何顺序(升序/降序)对以下数据进行排序的方法有哪些 -
输入 -
2002V001.10
2003V001.10
2004V001.20
2001V002.10
2004V001.10
2001V001.10
.
之前的字符串是版本,而.
之后的字符串是子版本,并且在排序时都必须考虑这两个字符串。
预期输出
2001V001.10
2001V002.10
2002V001.10
2003V001.10
2004V001.10
2004V001.20
答案 0 :(得分:2)
你可以创建一个这样的类:
public class StringsLike2001v001_10Comparator extends Comparator<String> {
public int compare(String o1, String o2) {
// implement your ordering logic here
}
}
答案 1 :(得分:1)
将数据添加到树集会根据需要对其进行排序。
注意:删除重复项。
public static void main(String[] args) {
TreeSet<String> a = new TreeSet<String>();
a.add("2001V001.10");
a.add("2001V002.10");
a.add("2002V001.10");
a.add("2003V001.10");
a.add("2004V001.10");
a.add("2004V001.20");
for (String string : a) {
System.out.println(string);
}
}
答案 2 :(得分:1)
只需排序为String
List<String> strings = Arrays.asList("2002V001.10", "2003V001.10", "2004V001.20", "2001V002.10", "2004V001.10",
"2001V001.10");
System.out.println(strings);
Collections.sort(strings);
System.out.println(strings);
输出
排序前的
[2002V001.10, 2003V001.10, 2004V001.20, 2001V002.10, 2004V001.10, 2001V001.10]
排序后
[2001V001.10, 2001V002.10, 2002V001.10, 2003V001.10, 2004V001.10, 2004V001.20]