【发布时间】:2015-07-09 06:29:21
【问题描述】:
这是我目前的代码:
package Demo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Demo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("3.3.x");
list.add("1.2.x");
list.add("2.3.x");
VersionComparator x = new VersionComparator();
Collections.sort(list, x );
for(String str : list)
System.out.println(str);
}
static class VersionComparator implements Comparator {
public int compare(String str1, String str2) {
String firstNumberStringOne = str1.split(".")[0];
String firstNumberStringTwo = str2.split(".")[0];
String secondNumberStringOne = str1.split(".")[1];
String secondNumberStringTwo = str2.split(".")[1];
return;
}
@Override
public int compare(Object o1, Object o2) {
// TODO Auto-generated method stub
return 0;
}
}
}
我想按句点之前出现的第一个数字对列表中的项目进行排序。如果这两个数字相等,则转到第二个数字并比较这些数字。如果相等,则返回它们。
我不知道如何使用比较器。我试图实现它,编译器抱怨我需要在第二个比较方法中添加覆盖。我也不知道如何根据返回方式进行比较。我知道,如果它相等,则返回 0,小于则返回 -1 且大于 1。但在编码方面,我不知道程序如何知道如何对其进行排序。
【问题讨论】:
标签: java sorting comparator