多字段排序的问题其实很简单,只要实现一个自己的Comparator就可以。 例如我有一个类
class Student {
public String name;
public int id;
public char gender;
public Student(String name, int id, char gender){
this.name = name;
this.id = id;
this.gender = gender;
}
}
然后我有一个ArrayList, 添加了三个学生进去
public static void main(String[] args){
List list = new ArrayList();
list.add(new Student("Tom", "3423", 'M'));
list.add(new Student("Tom", "1291", 'M'));
list.add(new Student("Marry", "3421"),'F'));
//然后我想给list里面的学生排序,很简单,只一行代码就可以
Collections.sort(list, new MyComparator());
}
/* 我的排序规则是,先按名字牌,如果名字一样的,按照id来排,只要把这个逻辑实现在MyComprator里就可以*/
class MyComparator implements Comparator {
public int compare(Object o1, Object o2){
Student s1 = (Student)o1;
Student s2 = (Student)o2;
if (s1.name.compateTo(s2.name) != 0) //如果名字不一样
return s1.name.compareTo(s2.name);
else // 如果名字一样
return s1.id - s2.id;
}
// 这个method在这里没有用,所以没有具体实现
public boolean equals (Object o){return false;}
}
这样,Collections.sort()就会根据你自己定义的规则来排序了。它会调用compare函数来决定拿个大,拿个小。 如果返回负数,说明前者小,反之亦然。 这里,当一开始比较名字的时候,我使用了String的compareTo , 这样就不用自己再写String比较的算法了
- 浏览: 133842 次
- 性别:
- 来自: 上海
最新评论
-
DRUNKonSTREET:
66666
Thinking in java 的课后习题答案以及源代码下载 -
疯青春you:
net.mindview.util.Print.*; 这个包在 ...
Thinking in java 的课后习题答案以及源代码下载 -
hpf_888:
想问一下,注解的方式下,如何能实现动态sql效果?
MyBatis动态SQL -
Spirit_eye:
楼主好人一生平安
Thinking in java 的课后习题答案以及源代码下载 -
lycrystal818:
最近发现基础知识不太扎实,买了本think in java 看 ...
Thinking in java 的课后习题答案以及源代码下载
相关推荐
C# 使用orderby 多字段 动态排序
C# IList多字段排序
List,List, Object>>,多字段组合排序。提供一个简易的思路,如果需要进行参考。
OrderByInterceptor,配合PageHelper实现字段排序插件,前端传入要排序的字段和排序规则,插件自动将实体字段映射成数据库字段,不用设置表明前缀。插件通过ResultMap或ResultType读取映射关系,若没有设置,则根据...
v-for根据某字段进行排序显示,方法比较灵活,可嵌入任何系统,不用依赖包,懂点vue基础的人都会用
java 大文件 多字段排序
多段字典去重_多字段排序(H600x55x22)
js实现点击table表头字段,根据字段排序例子。在表中添加js代码后可以自动排序,非常方便!
Hibernate中对表某个字段排序,直接在配置里面实现排序功能。
易语言excel多列排序源码,excel多列排序,Excel排序,数字到字母,关键字处理
js 根据json数组多个字段排序的实现代码如下所示: /**数组根据数组对象中的某个属性值进行排序的方法 * 使用例子:newArray.sort(sortByArr(['number'],false)) //表示根据number属性降序排列;若第二个参数不传递...
jquery ajax 分布 字段排序 有具体的实例
Server2005/2008专用高效分页存储过程(支持多字段排序).
给出提前排序的数组,jsonArray中字段根据数组顺序重新排序。
性能还算可以吧,支持多表查询,多字段排序,但是必须主键唯一,要是哪位兄弟有支持主键重复的,请告之。 思路说明: 按条件排序方式查询表获得总数,计算你想要的页码开始位置和结束位置,取得你要的信息返回。...
如果的单一字段排序分页,现在有很多的存储过程和SQL语句,分页的时候,只取pageSize的记录,可遇见的问题是: 这个单一字段必须是唯一的 这个字段必须是可以被排序的 不支持多字段排序 针对这一问题,我用C#做了一...
List数据字段排序不关注数据库,直接排序
Server2005/2008专用高效分页存储过程(支持多字段排序,支持Group By分组).
Mysql数据库+多表之间的数据同步SQL语句+多字段排序语句