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比较的算法了
分享到:
相关推荐
C# 使用orderby 多字段 动态排序
List,List, Object>>,多字段组合排序。提供一个简易的思路,如果需要进行参考。
List数据字段排序不关注数据库,直接排序
对实现IList接口的类进行排序,支持多字段排序。
list链表技术大家并不陌生,如何在里面插入自定义类型,以及如何修改其排序准则呢?请参考本文档提供的新思路和新方法吧,保证让你受益匪浅哟。
导入jar 包 调用 String[] arr1 = new String[1]; ... 参数1 排序的集合 参数2 排序的字段(与定义字段一致) 可多个 参数3 排序方式(asc desc) 暂时只支持String 和int的排序 可能有些BUG 敬请谅解
java集合某个字段按照中文拼音排序 java集合某个字段按照中文拼音排序
在数据库中查出来的列表list中,往往需要对不同的字段重新排序,一般的做法都是使用排序的字段,重新到数据库中查询。如果不到数据库查询,直接在第一次查出来的list中排序,无疑会提高系统的性能。
一个在VC中支持排序功能的list control组件,只包括控件源代码,没有示例。MyListCtrl这个类可以实现点击列表头时,对列进行排序。想实现这样功能的listctrl可以用它来作为基类。
下面小编就为大家带来一篇List对象去重和按照某个字段排序的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了Android List(集合)中的对象以某一个字段排序案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
在开发中,我们可能会遇到,我们会根据不同情况对一个List集合进行排序操作,为了方便List集合根据对象中的某一个属性进行排序,开发了此工具类:
之前写过关于排序的文章。这篇文章比之前写的思路更广一下。效率上也比较快。是一个升级版
主要为LIST对象中的指定字段排序 首先比较年龄,如果年龄相同,则比较名字
下面小编就为大家带来一篇Java按照List内存储的对象的某个字段进行排序的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
有时候我们可能有这样的需求:将一个List按照某个字段进行排序。比如现在有多个Student,我们要将这些学生按照成绩(grad)进行排序,本demo就是一个将List排序的demo
java中按找对象的某个属性进行升序降序的排序
主要介绍了linux sort多字段排序实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
主要介绍了Python sorted对list和dict排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧