这两天项目需要用到一个排序,分别对应4个项目,所以写了一个Comparator类。
代码如下:
import java.util.Comparator;
/**
* www.webkkk.net
* @author webkkk
*
*/
public class TestComparator implements Comparator {
public int compare(Object arg0, Object arg1) {
String[] strF = ((String) arg0).split("_");
String[] strL = ((String) arg1).split("_");
int len = strF.length;
if (len == 1) {
return Integer.parseInt(strF[0]) - Integer.parseInt(strL[0]);
}
for (int i = 0; i < len; i++) {
if (!strF[i].equals(strL[i])) {
return Integer.parseInt(strF[i]) - Integer.parseInt(strL[i]);
} else {
String strNF = getSubValue(strF, i);
String strNL = getSubValue(strL, i);
return compare(strNF, strNL);
}
}
return 0;
}
public String getSubValue(String[] strObj, int nPast) {
String strReturn = "";
for (int i = 1 + nPast; i < strObj.length; i++) {
strReturn = strReturn + "_" + strObj[i];
}
return strReturn.substring(1);
}
}