快速业务通道

一个关于Comparator的使用例子 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

一个关于Comparator的使用例子

时间:2011-02-10

这两天项目需要用到一个排序,分别对应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); } }

一个关于Comparator的使用例子(2)

时间:2011-02-10

然后写一个调用类:

public class Test { public static void main(String args[]) throws Exception{ String[] st = {"2_2_107_11","4_1_3_8","1_1_103_3","1_2_103_2","1_1_105_1","2_1_107_5","2_2_107_6","3_1_107_4","2_1_107_10"};  TestComparator tc = new TestComparator();  Arrays.sort(st, tc);  for (int i=0;i < st.length;i ++) {  System.out.println(st[i]);  } }

这个类就算完成了,结果如下:

1_1_103_3

1_1_105_1

1_2_103_2

2_1_107_5

2_1_107_10

2_2_107_6

2_2_107_11

3_1_107_4

4_1_3_8

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号