`
juzhibest
  • 浏览: 53949 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

mysql数据库java端查询List的排名排序方法

阅读更多
Mysql好像不提供排名函数.

网络上的其他什么方法好像可以排序,
也有些对于同分数算名次的处理不够好.
正好工程里有写的排序list (SortListTools)
就在它之上进行了一下扩展.
排序+算名词.其实很简单的.


一般sql查询出来的结果格式为:
list:{[map][map][map][map][map]....}
针对map的某一列排名操作.


rankList方法为传入要排序的list,设置排序列,设置输出名词列.
返回就是排序之后的List.


/**
 * 
 *  这里填写类说明
 * @author Juz
 * Mar 30, 2012
 */
@Deprecated
public class SortListTools implements Comparator{
	
	private String key;
	//property
	public void doSortkey (String key) {
		this.key = key;
	}
	
	public int compare(Object arg0, Object arg1) {
		Map m1 = (Map) arg0;
		Map m2 = (Map) arg1;
		int flag = 0;
		
		float id1 = Float.parseFloat(m1.get(key).toString());
		float id2 = Float.parseFloat(m2.get(key).toString());
		if ( id2 > id1) {
			flag = 1;
		}else if (id1 < id2) {
			flag = -1;
		}
		return flag;
	}
}





 /**
	 *  List指定列排名.
	 * @param liinfo list:{[map][map][map]....}
	 * @param string  key 指定排序map的key
 	 * @param string  minckey  指定输出排序的key
	 * @return	List 
	 * @author Juz
	 */
	public List rankList(List liinfo, String key, String minckey) {
		// TODO Auto-generated method stub
		int thisv = 1;
		int nextv = 0;
		float sscore =0;
		float tscore =0;
		Map thism =null;
		Map nextm = null;
		SortListTools st = new SortListTools();
		st.doSortkey(key);
		Collections.sort(liinfo, st);
		for(int i=0;i<liinfo.size();i++){
			((Map)liinfo.get(i)).put(minckey, i+1);
		}
		for(int i=0;i<liinfo.size();i++){
			if(i<liinfo.size()-1){
				thism = (Map)liinfo.get(i);
				thisv = Integer.parseInt(thism.get(minckey).toString());
				sscore = Float.parseFloat(thism.get(key).toString());
				nextm =  (Map)liinfo.get(i+1);
				tscore = Float.parseFloat(nextm.get(key).toString());
				if(sscore-tscore<0.0001){
					nextm.put(minckey, thisv);
				}else{
					nextm.put(minckey, thisv+1);
				}
			}
		}
		return liinfo;
	}
0
0
分享到:
评论

相关推荐

    MYSQL

    9.1.1 用于数据和排序的字符集 9.1.2 增加一个新的字符集 9.1.3 多字节字符支持 9.2 更新日志 9.3 MySQL数据库表可以有多大? 9.4 MySQL数据库表类型 10 从 MySQL 得到最大的性能 ...

    MySQL中文参考手册.chm

    9.1.1 用于数据和排序的字符集 9.1.2 增加一个新的字符集 9.1.3 多字节字符支持 9.2 更新日志 9.3 MySQL数据库表可以有多大? 9.4 MySQL数据库表类型 10 从 MySQL 得到最大的...

    MySQL中文参考手册

    + 7.1.5 数据库,表,索引,列和别名的命名 # 7.1.5.1 名字的大小写敏感性 o 7.2 用户变量 o 7.3 列类型 + 7.3.1 列类型的存储要求 + 7.3.5 数字类型 + 7.3.6 日期和时间类型 # 7.3.6.1 问题和日期类型 # ...

    MySQL 5.1中文手冊

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...

    MySQL 5.1参考手册

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    MySQL 5.1官方简体中文参考手册

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...

    MySQL 5.1参考手册中文版

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? ...

    MySQL 5.1参考手册 (中文版)

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...

    MYSQL中文手册

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? ...

    mysql5.1中文手册

    MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是...

    kellerMapper.jar

    这是一款轻量级的MyBatis插件,在GitHub上发布的有打好的jar包,25.2Kb,导入项目中即可使用,支持创建数据表、自定义查询、分页查询等常用的数据库操作。 依赖包 &lt;groupId&gt;org.mybatis.spring.boot ...

    mysql官方中文参考手册

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...

    MySQL5.1参考手册官方简体中文版

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     17.1.10 按主键逐个处理查询结果(iterate()方法)  17.1.11 可滚动的结果集  17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中...

    Java开发详解.zip

    031702_【第17章:Java数据库编程】_MySQL数据库笔记.pdf 031703_【第17章:Java数据库编程】_SQL语法基础笔记.pdf 031704_【第17章:Java数据库编程】_JDBC操作步骤及数据库连接操作笔记.pdf 031705_【第17章:Java...

    JAVA WEB框架,java网站一个模块只用写一个文件

    只要你调用 setOrder(String order) 的方法,查询的结果将按照你给的排序方法排序。 ————————————————————————————————呵呵,一切就这么简单,just do it! hyberbin 2011.10.25 14...

Global site tag (gtag.js) - Google Analytics