//一个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
分享到:
相关推荐
Java 类自定义排序 Java 中的自定义排序是指在编写 Java 程序时,...自定义排序是 Java 中的一种非常重要的技术,通过实现 Comparable 接口,我们可以对自定义的对象进行排序,并且可以根据不同的比较规则进行排序。
这里我们探讨的主题是如何根据对象的属性进行排序,结合提供的`Simple.java`和`User.java`文件,我们可以假设这是一个关于自定义对象排序的例子。下面将详细解释相关知识点。 1. **Comparable接口**: Java中的`...
可以通过两种方式自定义对象的属性大小进行比较,对一个list或数组对根据属性排序一个list或数组
"C++自定义结构体排序实现" C++中的结构体排序是指对自定义结构体类型的数据进行排序操作。排序是按照某个键值进行的,例如结构体中的某个成员变量。下面我们将介绍两种实现结构体排序的方法。 一、使用重载运算符...
通过这种方式,易语言的“任意自定义数据类型排序源码”能够处理各种复杂的数据结构,不仅限于基本类型,使得开发者可以方便地对自定义对象进行排序。 此外,列表框初始化也是易语言编程中常见的操作,通常用于显示...
"Dojo 自定义后台排序"是一个关于如何利用Dojo框架实现后台数据排序的专题。Dojo是一个强大的JavaScript库,提供了丰富的功能和工具,帮助开发者构建富交互式的Web应用。在本主题中,我们将深入探讨Dojo的排序机制,...
本资源提供的"原生js图片按自定义属性排序效果源码下载"是一个实用的示例,它展示了如何利用JavaScript来实现对图片进行排序,根据自定义的属性值来调整它们在页面上的显示顺序。下面我们将深入探讨相关的JavaScript...
因此,了解如何在 Lucene 中实现自定义排序是非常关键的。在这个话题中,我们将深入探讨如何根据特定的业务需求对搜索结果进行定制排序。 首先,我们要明白 Lucene 默认的排序机制。默认情况下,Lucene 搜索结果是...
STL自定义排序准则 STL(Standard Template Library)是C++编程中非常重要的一部分,对于C++编程者来说, STL 的排序准则是一个非常重要的概念。今天,我们将讨论STL自定义排序准则的实现方法。 首先,我们来看...
三、自定义对象排序 如果你的数组包含自定义对象,需要确保这些对象遵循了`<NSCopying>`, `<NSMutableCopying>`, 和 `<NSCoding>` 协议,并实现了`isEqual:`和`hash`方法,以便于比较和排序。 四、内置排序函数 ...
然而,有时我们可能需要对DataGrid的默认排序功能进行自定义,以满足特定的业务需求。本教程将详细讲解如何在Flex中创建一个自定义排序的DataGrid控件。 首先,我们需要了解Flex DataGrid的基本结构。DataGrid控件...
总结来说,“易语言挂号法-自定义数据数组排序”涉及到的关键概念包括易语言的基础语法、数组操作、自定义数据类型、比较函数以及优化的排序算法——挂号法。通过掌握这些知识点,开发者可以更高效地处理和排序包含...
这里,`sourceData`是包含待排序数据的数组,`label: 'name'`表示数据对象中的哪个字段作为展示的标签,`titles`定义了穿梭框两侧的标题,`v-model`用于双向绑定选中的数据,而`@change`事件会在数据发生变化时触发...
除了让需要进行排序的对象的类实现Comparable接口外,我们还可以使用Comparator接口来实现ArrayList的自定义排序。Comparator接口中定义了compare()方法,该方法用于比较两个对象的大小。 例如,我们可以定义一个...
这篇博客将深入探讨如何在STL中自定义排序规则,以满足特定的排序需求。 首先,`std::sort`函数的原型为: ```cpp template , class Compare> void sort(RandomAccessIterator first, RandomAccessIterator last, ...
在.NET框架中,`IComparer<T>`是一个泛型接口,它提供了一种自定义对象排序的方式。这个接口定义了一个名为`Compare`的方法,用于比较两个指定的T类型的实例。当你需要对一组对象进行排序,而默认的排序规则不满足...
挂号法,或者可以理解为登记法,可能是指一种特定的排序算法,用于处理具有复杂数据结构的数组,比如自定义对象数组。在自定义数据排序中,通常我们需要提供一个比较函数或比较器(Comparator),以便程序知道如何...
对于需要根据某个属性(例如年龄)对自定义对象进行排序的情况,可以通过让自定义类实现`Comparable`接口来实现。下面以`Person1`类为例,该类包含姓名和年龄两个属性,并实现`Comparable`接口: ```java class ...
在Java编程语言中,对象排序是一项关键操作,特别是在处理集合数据结构时。本文将深入探讨如何对ArrayList、HashSet、TreeSet以及数组中的对象进行排序。理解这些排序机制对于编写高效且可维护的代码至关重要。 ...
对ArrayList里装载的对象进行自定义排序(任意对象、任何字段、任何规则) ! ArrayList中可装载任何对象,并以指定的该对象的字段对该集合中的对象进行指定形式的排序(正序、反序)。 任何类通用........