//一个POJO例子
class User {
String name;
String age;
public User(String name,String age){
this.name=name;
this.age=age;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//具体的比较类,实现Comparator接口
import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class ComparatorUser implements Comparator{
public int compare(Object arg0, Object arg1) {
User user0=(User)arg0;
User user1=(User)arg1;
//首先比较年龄,如果年龄相同,则比较名字
int flag=user0.getAge().compareTo(user1.getAge());
if(flag==0){
return user0.getName().compareTo(user1.getName());
}else{
return flag;
}
}
}
//测试类
public class SortTest {
public static void main(String[] args){
List userlist=new ArrayList();
userlist.add(new User("dd","4"));
userlist.add(new User("aa","1"));
userlist.add(new User("ee","5"));
userlist.add(new User("bb","2"));
userlist.add(new User("ff","5"));
userlist.add(new User("cc","3"));
userlist.add(new User("gg","6"));
ComparatorUser comparator=new ComparatorUser();
Collections.sort(userlist, comparator);
for (int i=0;i<userlist.size();i++){
User user_temp=(User)userlist.get(i);
System.out.println(user_temp.getAge()+","+user_temp.getName());
}
}
}
//首先年龄排序,如果年龄相同,则按名字排序
结果:
1, aa
2, bb
3, cc
4, dd
5, ee //注意:同样是5岁的人,则比较名字(ee,ff),然后排序
5, ff
6, gg
分享到:
相关推荐
可以通过两种方式自定义对象的属性大小进行比较,对一个list或数组对根据属性排序一个list或数组
主要介绍了Java针对ArrayList自定义排序的2种实现方法,结合实例形式总结分析了Java操作ArrayList自定义排序的原理与相关实现技巧,需要的朋友可以参考下
对ArrayList里装载的对象进行自定义排序(任意对象、任何字段、任何规则) ! ArrayList中可装载任何对象,并以指定的该对象的字段对该集合中的对象进行指定形式的排序(正序、反序)。 任何类通用........
* 可自定义指定排序字段sequence,对于数字或日期类型的字段,先转为字符串,比如to_char(line, 'FM000') * 由于聚合函数只支持一个参数,这里使用对象类型实现传入多个参数 * Oracle11g Release2版本引入了...
(1)对象数组排序 java没有结构体,所以在算法竞赛中有时候对于有多个属性属于同一个事物,这时候就要创建一个类来存储,而算法竞赛中往往有多个数据,所以要用对象数组来存储。如果要按照某一个属性来对这个对象...
文件按照window 的排序规则-Java实现。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
["idNum", { type: "int" }],//排序对象(对应列的id) ["idTitle", { index: 1 }], ["idExt", { index: 1, property: "_ext" }], ["idAddtime", { index: 2, type: "date" }], ["idSize", { index: 3, property: "_...
主要介绍了JavaScript对象数组如何按指定属性和排序方向进行排序的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
jsSort v0.0.5 jsSort是一种通用的排序方法,可以通过多个属性对对象数组进行排序。概述jsSort的公共API归结为一个名为sortByMultiple的方法。 此方法采用两个参数,每个参数都是数组。 sequence :要排序的数组。 ...
自定义类模板内容很全,用到了大部分数据结构的知识 具体分为: 1.容器类模板:顺序表、链表、栈、队列、映射表 2.函数模板:冒泡、快速排序、堆排序、顺序查找、二分查找 3.应用:(1)四则表达式的运算(2)图...
[星]排序框架 简单/通用/类型安全/高效 面向对象/面向组件 https://bbs.125.la/forum.php?mod=viewthreadtid=14066267 保留作者一切权限。 [星]排序框架 确实是我使用过的排序框架中很好的一个框架,理论上可以无限...
简单举例普通数组、vector、对象排序 ,列举了默认排序、自定义排序,在自定义排序函数注释部分 点明了容易出问题的地方
JAVA 键盘录入学生成绩,排序后输出,set中自定义排序规则。
定制排序:在创建TreeSet集合对象时,并提供一个Comparator接口实现类对象与该TreeSet集合关联, 由Comparator实现类对象负责集合元素的排序逻辑。 // 自定义比较器 class MyTreeSetCompartor implements...
从个小例子开始: 代码如下: int[] intArray = new int[]{2,3,6,1,4,5};... 为什么Array的Sort方法可以正确的对int数组进行排序呢,我们自定义类可以吗?试试看,如下代码: 代码如下: public class Student
github项目:FastMOT自定义多个对象跟踪器,可以实现YOLO探测器、SSD探测器、深度排序+OSNet REID、KLT光流跟踪、相机运动补偿。 为了实现更快的处理,跟踪器每N帧仅运行一次检测器和特征提取器,然后使用光流填充...
冒泡排序 堆排序 快速排序 的c++实现 支持自定义用于compare的函数对象
java开发中常用的工具类 比如 ...4:javabean java对象到xml的自动封装 5:各种日期格式的处理 6:json的自动封装处理 7:fusionchart各种图 显示样式的定义 8:各种排序算法 9:其他很多。。。想看 下载吧
Python 的官方定义:Python 是一种解释型的、面向对象的、带有动态语义的高级程序设计语言。通俗来讲,Python 是一种少有的、既简单又功能强大的编程语言,它注重的是如何解决问题而不是编程语言的语法和结构。 2....