`
stone02111
  • 浏览: 214769 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

List多字段排序

    博客分类:
  • Java
 
阅读更多
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# List OrderBy 动态多字段排序

    本篇文章将深入探讨如何在C#中使用`OrderBy`方法进行动态多字段排序。 首先,了解`OrderBy`的基本用法。`OrderBy`方法接收一个委托作为参数,这个委托定义了排序的规则。在单字段排序中,我们通常使用Lambda表达式...

    List<map>多字段组合排序

    List,List, Object>>,多字段组合排序。提供一个简易的思路,如果需要进行参考。

    C# IList多字段排序

    本篇将详细讲解如何在C#中使用`IList<T>`实现多字段排序。 首先,我们需要了解C#中的排序基础。在C#标准库中,`System.Linq`命名空间提供了强大的排序功能,包括`OrderBy()`和`ThenBy()`方法。这两个方法可以用于...

    List数据字段排序不关注数据库,直接排序

    - **多字段排序**: 对于复杂的数据结构,可以根据多个字段进行排序。 - **数据清洗**: 在处理数据前,先进行排序以便更容易发现异常值或规律。 #### 总结 通过这种方式,我们可以在 Java 中轻松地对 List 集合中的...

    java中list排序

    Java 中 List 排序是指在数据库中查出来的列表中对不同的字段重新排序。一般的做法都是使用排序的字段,重新到数据库中查询。如果不到数据库查询,直接在第一次查出来的 List 中排序,无疑会提高系统的性能。这样...

    List对象去重和按照某个字段排序的实现方法

    List对象去重和按照某个字段排序的实现方法 在Java开发中,List对象的去重和排序是非常常见的操作。今天,我们将探讨如何对List对象进行去重和按照某个字段排序的实现方法。 首先,让我们来看一下List对象的去重。...

    VC中排序功能的list control

    在Windows编程中,`List Control`(MFC中的`CListCtrl`类)允许程序员创建类似电子表格的界面,用于显示多列数据。本篇将深入探讨如何在VC++中实现具有排序功能的`List Control`。 标题中的“VC中排序功能的list ...

    java集合某个字段按照中文拼音排序.docx

    "Java集合某个字段按照中文拼音排序" Java集合某个字段按照中文拼音排序是Java开发中经常遇到的问题。对Java集合中的某个字段按照中文拼音排序可以使用多种方法,本文将介绍两种常见的方法。 方法一:使用...

    c# List类排序方法

    `Sort`方法有多个重载版本,其中最简单的一个是不带任何参数的版本`List<T>.Sort()`。 然而,在尝试使用`Sort()`方法对`List<Student>`进行排序时,会遇到问题。这是因为`Sort()`方法默认使用元素的自然顺序进行...

    List集合排序222222

    导入jar 包 调用 String[] arr1 = new String[1]; ... 参数1 排序的集合 参数2 排序的字段(与定义字段一致) 可多个 参数3 排序方式(asc desc) 暂时只支持String 和int的排序 可能有些BUG 敬请谅解

    js实现点击table表头字段,根据字段排序例子

    在JavaScript中实现点击表格(Table)表头进行字段排序是一种常见的功能需求,特别是在网页数据展示时,用户往往希望可以通过点击列头对数据进行升序或降序排列。本示例将详细讲解如何通过JavaScript实现这一功能。 ...

    Java将2个List集合合并到一个List里面并排序工具类

    Java将2个List集合合并到一个List里面并排序工具类 1、Java编程资源,定义了一个名为`ListMerger`的工具类,主要包含一个名为`mergeAndSortLists`的静态方法。此方法用于将两个已经根据时间顺序排列的List合并成一...

    Android List(集合)中的对象以某一个字段排序案例

    Android List(集合)中的对象以某一个字段排序案例 Android List(集合)中的对象以某一个字段排序案例是 Android 开发中非常重要的一部分。在实际开发中,我们经常需要对一个对象的集合按照某一个字段进行排序,例如...

    list,map四字段排序

    之前写过关于排序的文章。这篇文章比之前写的思路更广一下。效率上也比较快。是一个升级版

    List对象排序通用方法

    如果需要同时按照多个字段排序,可以在`compare()`方法中组合比较多个字段,例如先按照`userId`升序,再按照`age`降序: ```java Collections.sort(list, new Comparator() { @Override public int compare...

    MFC实现ListControl排序

    通常可以创建一个自定义结构,比如`struct ItemData`,包含需要显示的各个字段,以及一个整型成员`nSortValue`,用于排序。 2. **CListCtrl对象**:在MFC中,通过继承`CListCtrl`类并创建其对象,你可以访问List...

    List集合按照对象中某个属性排序通用工具类(按对象中某属性排序)

    在开发中,我们可能会遇到,我们会根据不同情况对一个List集合进行排序操作,为了方便List集合根据对象中的某一个属性进行排序,开发了此工具类:

    实现了MFC list排序

    例如,如果你希望按`name`字段排序,可以创建如下比较函数: ```cpp bool CompareItems(const MyListItem& item1, const MyListItem& item2) { return item1.name.CompareNoCase(item2.name) ; } ``` 3. **使用`...

    ListCtrl点击标题排序

    在Windows编程领域,ListCtrl是MFC(Microsoft Foundation Classes)库中的一个重要控件,它用于显示多列数据,常用于创建列表视图。本篇将深入探讨如何实现ListCtrl点击标题进行排序的功能。 首先,我们需要了解...

Global site tag (gtag.js) - Google Analytics