`

自定义对象排序

    博客分类:
  • java
 
阅读更多

java List 排序 Collections.sort() 对 List 排序

//一个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 程序时,...自定义排序是 Java 中的一种非常重要的技术,通过实现 Comparable 接口,我们可以对自定义的对象进行排序,并且可以根据不同的比较规则进行排序。

    java 按对象属性排序

    这里我们探讨的主题是如何根据对象的属性进行排序,结合提供的`Simple.java`和`User.java`文件,我们可以假设这是一个关于自定义对象排序的例子。下面将详细解释相关知识点。 1. **Comparable接口**: Java中的`...

    Compable和Comparator自定义对象属性排序

    可以通过两种方式自定义对象的属性大小进行比较,对一个list或数组对根据属性排序一个list或数组

    C++自定义结构体排序实现

    "C++自定义结构体排序实现" C++中的结构体排序是指对自定义结构体类型的数据进行排序操作。排序是按照某个键值进行的,例如结构体中的某个成员变量。下面我们将介绍两种实现结构体排序的方法。 一、使用重载运算符...

    易语言任意自定义数据类型排序

    通过这种方式,易语言的“任意自定义数据类型排序源码”能够处理各种复杂的数据结构,不仅限于基本类型,使得开发者可以方便地对自定义对象进行排序。 此外,列表框初始化也是易语言编程中常见的操作,通常用于显示...

    Dojo 自定义后台排序

    "Dojo 自定义后台排序"是一个关于如何利用Dojo框架实现后台数据排序的专题。Dojo是一个强大的JavaScript库,提供了丰富的功能和工具,帮助开发者构建富交互式的Web应用。在本主题中,我们将深入探讨Dojo的排序机制,...

    原生js图片按自定义属性排序效果源码下载

    本资源提供的"原生js图片按自定义属性排序效果源码下载"是一个实用的示例,它展示了如何利用JavaScript来实现对图片进行排序,根据自定义的属性值来调整它们在页面上的显示顺序。下面我们将深入探讨相关的JavaScript...

    lucene自定义排序实现

    因此,了解如何在 Lucene 中实现自定义排序是非常关键的。在这个话题中,我们将深入探讨如何根据特定的业务需求对搜索结果进行定制排序。 首先,我们要明白 Lucene 默认的排序机制。默认情况下,Lucene 搜索结果是...

    STL自定义排序准则

    STL自定义排序准则 STL(Standard Template Library)是C++编程中非常重要的一部分,对于C++编程者来说, STL 的排序准则是一个非常重要的概念。今天,我们将讨论STL自定义排序准则的实现方法。 首先,我们来看...

    oc中数组排序

    三、自定义对象排序 如果你的数组包含自定义对象,需要确保这些对象遵循了`&lt;NSCopying&gt;`, `&lt;NSMutableCopying&gt;`, 和 `&lt;NSCoding&gt;` 协议,并实现了`isEqual:`和`hash`方法,以便于比较和排序。 四、内置排序函数 ...

    Flex中如何创建自定义排序DataGrid控件的例子

    然而,有时我们可能需要对DataGrid的默认排序功能进行自定义,以满足特定的业务需求。本教程将详细讲解如何在Flex中创建一个自定义排序的DataGrid控件。 首先,我们需要了解Flex DataGrid的基本结构。DataGrid控件...

    易语言挂号法-自定义数据数组排序

    总结来说,“易语言挂号法-自定义数据数组排序”涉及到的关键概念包括易语言的基础语法、数组操作、自定义数据类型、比较函数以及优化的排序算法——挂号法。通过掌握这些知识点,开发者可以更高效地处理和排序包含...

    vue+element-ui实现穿梭框数据自定义排序

    这里,`sourceData`是包含待排序数据的数组,`label: 'name'`表示数据对象中的哪个字段作为展示的标签,`titles`定义了穿梭框两侧的标题,`v-model`用于双向绑定选中的数据,而`@change`事件会在数据发生变化时触发...

    Java针对ArrayList自定义排序的2种实现方法

    除了让需要进行排序的对象的类实现Comparable接口外,我们还可以使用Comparator接口来实现ArrayList的自定义排序。Comparator接口中定义了compare()方法,该方法用于比较两个对象的大小。 例如,我们可以定义一个...

    STL中自定义排序的使用

    这篇博客将深入探讨如何在STL中自定义排序规则,以满足特定的排序需求。 首先,`std::sort`函数的原型为: ```cpp template , class Compare&gt; void sort(RandomAccessIterator first, RandomAccessIterator last, ...

    接口IComparer比较器关于排序

    在.NET框架中,`IComparer&lt;T&gt;`是一个泛型接口,它提供了一种自定义对象排序的方式。这个接口定义了一个名为`Compare`的方法,用于比较两个指定的T类型的实例。当你需要对一组对象进行排序,而默认的排序规则不满足...

    挂号法-自定义数据数组排序.rar

    挂号法,或者可以理解为登记法,可能是指一种特定的排序算法,用于处理具有复杂数据结构的数组,比如自定义对象数组。在自定义数据排序中,通常我们需要提供一个比较函数或比较器(Comparator),以便程序知道如何...

    在TreeSet中添加自定义对象

    对于需要根据某个属性(例如年龄)对自定义对象进行排序的情况,可以通过让自定义类实现`Comparable`接口来实现。下面以`Person1`类为例,该类包含姓名和年龄两个属性,并实现`Comparable`接口: ```java class ...

    Java 对象排序详解.rar_java 对象排序_对象_排序

    在Java编程语言中,对象排序是一项关键操作,特别是在处理集合数据结构时。本文将深入探讨如何对ArrayList、HashSet、TreeSet以及数组中的对象进行排序。理解这些排序机制对于编写高效且可维护的代码至关重要。 ...

    对ArrayList里装载的对象进行自定义排序(任意对象、任何字段、任何规则) !

    对ArrayList里装载的对象进行自定义排序(任意对象、任何字段、任何规则) ! ArrayList中可装载任何对象,并以指定的该对象的字段对该集合中的对象进行指定形式的排序(正序、反序)。 任何类通用........

Global site tag (gtag.js) - Google Analytics