一个关于Comparator的使用例子

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

时间: 2024-10-31 11:14:54

一个关于Comparator的使用例子的相关文章

java中的基于套结字(socket)的通信 一. 一个双人单方向通信例子

/* * date: 2004-11-29 author:zhangyu6050; * todo:一个双人单方向通信例子 * 本文件是主机方(Server) * 提供主机与客户机的通信套节字:fromClient * bugs: */ import java.net.*;import java.io.*; public class ChatServer { public static void main(String[] args) { final int port = 1775; //建立通信

一个颜色轮换的简单例子

一个颜色轮换的简单例子,使用三元运算子,使程序简练. 我们曾经在网站上看过一些表格单元格的背景颜色是隔行变化的,其实用下面一段很小的一段代码就可以实现: $color=(($coloralter++ %2)? "e0e0e0":"e8e8e8") ,即通过将变量累加和2取余,运用三元运算子来取得两个不同得颜色值. 示例如下: <html> <head> <title>test</title> <meta http

c-求一个完整的glDrawElements的例子

问题描述 求一个完整的glDrawElements的例子 c/c++的都行 (1).要完整的程序,本人刚接触OpenGL ES.画一个正方形 或者五边形都行.或者各画一个.. 别太麻烦 (2).现在要做一个功能 以前几个三角形调用一次这个函数,现在为了性能,把很多三角形存储到数组中调用一次这个函数, 对于(1)希望给出源码, 对于(2)能给出简单的源码最好.看你的时间吧,或者大致说一下思路. 解决方案 glDrawElements实例http://www.tuicool.com/articles

一个分层架构设计的例子(1)

一般来说,对系统的分层,一般都需要下面几个层:实体层(Entity).数据访问层(DAL).业务逻辑层(BLL).界面层(UI);而数据访问层,一般也会加入一个接口层(IDAL).在其中的实体层,一般是根据数据库进行映射外加入注释等,技术含量不大,在此一笔带过:数据库访问层和业务逻辑层,是关键之所在,因为这里好的设计,会利用很多基类的操作,减少很多代码和重复劳动:界面层,不管是WebForm还是WinForm,都是尽可能少的逻辑代码或者SQL语句在其中,好的项目可能会利用一些优秀的控件进去,提高

一个分层架构设计的例子(2)

接着上一篇关于分层架构的讨论,一个分层架构设计的例子(1).上篇介绍了实体类(Entity).数据库访问类(DAL).数据访问接口(IDAL)的相关设计,本篇主要讨论下面几个部分内容:业务逻辑层.缓存机制.界面层等方面.业务逻辑层,主要是业务逻辑基类的设计,由于数据库访问类(DAL)的基类封装了大量的操作实现,因此,业务逻辑层的主要工作是进一步封装对底层访问接口的实现,如下所示.     public class BaseBLL<T> where T : BaseEntity, new()  

第二章 你好三角形:一个OpenGL ES 2.0例子

介绍基本概念的OpenGL ES 2.0,我们首先从一个简单的例子.在这一章里,我们将展示什么是需要创建一个OpenGL ES 2.0一个三角形的项目..我们要编写的程序是最基本的例子,一个OpenGL ES 2.0应用程序,绘制几何.有数量的概念,我们将介绍在本章: 1.创建一个屏幕渲染表面与EGL. 2.加载片段着色器和定点. 3.创建程序的对象,附着顶点和片段着色器,连接程序对象. 4.设置窗口. 5.清除颜色缓冲. 6.渲染一个简单的例子. 7.使内容的颜色缓冲可见在EGL窗口表面. 事

一个简单的XML Schema例子

我们可以看到,DTD的语法相当复杂,并且它不符合XML文件的标准,自成一个体系.也就是说DTD文档本身并不是一个良好形式的XML文档,上面的关于DTD的介绍也仅仅是作了一个简介,目的是帮助大家能读懂DTD文件以及在必要时创建简单的DTD文件,因为现在很多的XML应用是建立在DTD之上的. 另外一个代替DTD的就是W3C定义的Schema,Schema从字面意义上来说,可以翻译成模式.大纲.计划.规划等等.它的基本意思就是说为XML文档制定一种模式. Schema相对于DTD的明显好处是XML

一个O/RMapping的简单例子

ORMAPPING出来已经很多年了,之前一直有关注,但一直没有应用到项目中去,众所周知,ORMAPPING 的性能是很大一个问题,虽然它节省代码量,为程序员做了很多工作.而且ORMAPPING主要应用在JAVA领 域,.NET领域用到的少之又少,最近公司要做一个内部的资产管理系统,我就打算用ORMAPPING来做,对 几种ORMAPPING的框架我进行了比较,第一,nhibernate这个我相信大家比较熟悉了,nhibernate在JAVA 领域已经应用相当广泛了,nhibernate最持久层性

nginx的http模块开发--一个验证url参数的例子

本文开发一个nginx http模块基本的开发步骤和前篇http://www.cnblogs.com/yjf512/archive/2013/06/10/3130890.html 说的一样,按照开发的六个步骤写. 配置文件及功能 该模块的功能是验证请求url中的secret参数的值是否是约定的秘钥. 它的nginx配置文件是这样的: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3