多字段排序的问题其实很简单,只要实现一个自己的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比较的算法了
- 浏览: 138778 次
- 性别:
- 来自: 上海
最新评论
-
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`方法进行动态多字段排序。 首先,了解`OrderBy`的基本用法。`OrderBy`方法接收一个委托作为参数,这个委托定义了排序的规则。在单字段排序中,我们通常使用Lambda表达式...
本篇将详细讲解如何在C#中使用`IList<T>`实现多字段排序。 首先,我们需要了解C#中的排序基础。在C#标准库中,`System.Linq`命名空间提供了强大的排序功能,包括`OrderBy()`和`ThenBy()`方法。这两个方法可以用于...
List,List, Object>>,多字段组合排序。提供一个简易的思路,如果需要进行参考。
OrderByInterceptor,配合PageHelper实现字段排序插件,前端传入要排序的字段和排序规则,插件自动将实体字段映射成数据库字段,不用设置表明前缀。插件通过ResultMap或ResultType读取映射关系,若没有设置,则根据...
v-for根据某字段进行排序显示,方法比较灵活,可嵌入任何系统,不用依赖包,懂点vue基础的人都会用
在Java编程中,处理大文件并进行多字段排序是一项挑战性的任务,特别是在内存有限的情况下。以下将详细讲解如何实现这个目标。 首先,我们要理解大文件排序的基本原理。当文件太大无法一次性加载到内存时,我们需要...
多段字典去重_多字段排序(H600x55x22)
在处理表格数据时,字段排序是常见的需求,尤其是在动态加载或通过Ajax获取数据的情况下。jQuery与Ajax的结合可以实现这种分布式的、基于用户交互的排序功能。 在标题"jquery 分布 字段排序"中,"分布"可能指的是...
下面我们将详细讨论如何使用SQL进行多条件多字段排序。 首先,基本的多字段排序语法如下: ```sql SELECT * FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2, ...; ``` 这里的排序方式可以是`ASC`或`DESC`...
在"易语言excel多列排序"这个主题中,我们主要探讨的是如何利用易语言编写程序,实现对Excel电子表格中的数据进行多列排序的功能。在Excel中,排序功能是数据分析和整理数据的关键操作,而多列排序则意味着可以根据...
Hibernate中对表某个字段排序,直接在配置里面实现排序功能。
在JavaScript中实现点击表格(Table)表头进行字段排序是一种常见的功能需求,特别是在网页数据展示时,用户往往希望可以通过点击列头对数据进行升序或降序排列。本示例将详细讲解如何通过JavaScript实现这一功能。 ...
对于多字段排序,我们可以调用`SortBy`函数多次,或者创建一个更复杂的比较函数来处理多个条件。以下是一个多字段排序的例子: ```javascript // 假设我们有两个字段'orderNum'和'name' nodes.sort(function (a, b)...
Server2005/2008专用高效分页存储过程(支持多字段排序).
`ORDER BY`子句用于指定查询结果的排列顺序,而多字段排序则允许我们根据多个列的值来对结果进行排序。以下是对`ORDER BY`多字段排序的详细说明。 ### 1. `ORDER BY`基本语法 `ORDER BY`子句的基本语法如下: ```...
给出提前排序的数组,jsonArray中字段根据数组顺序重新排序。
这里我们将深入探讨如何根据JSON数组中的多个字段进行排序,以及JSON数组的一些常用操作。 首先,我们来看如何根据JSON数组的多个字段进行排序。在提供的代码中,有一个名为`sortByArr`的函数,它可以接收两个参数...
性能还算可以吧,支持多表查询,多字段排序,但是必须主键唯一,要是哪位兄弟有支持主键重复的,请告之。 思路说明: 按条件排序方式查询表获得总数,计算你想要的页码开始位置和结束位置,取得你要的信息返回。...