`
lw671579557
  • 浏览: 104620 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

对象排序

    博客分类:
  • java
 
阅读更多

实现Java对象按多列排序。

Person类,先按age排序,如果age相等,再按name排序。

 

Person:

package com.weye.bean;

public class Person implements Comparable<Person>
{
    private int age;
    
    private String name;
    
    private int sex;
    
    /**
     * @return the age
     */
    public int getAge()
    {
        return age;
    }
    
    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString()
    {
        return "Person [name=" + name + ", age=" + age + ", sex=" + sex + "]";
    }
    
    /**
     * @param age the age to set
     */
    public void setAge(int age)
    {
        this.age = age;
    }
    
    /**
     * @return the name
     */
    public String getName()
    {
        return name;
    }
    
    /**
     * @param name the name to set
     */
    public void setName(String name)
    {
        this.name = name;
    }
    
    /**
     * @return the sex
     */
    public int getSex()
    {
        return sex;
    }
    
    /**
     * @param sex the sex to set
     */
    public void setSex(int sex)
    {
        this.sex = sex;
    }

    /* (non-Javadoc)
     * @see java.lang.Comparable#compareTo(java.lang.Object)
     */
    @Override
    public int compareTo(Person o)
    {
        // 先根据age排序
        int result = this.age - o.age;
        
        if (result == 0) // 如果age相等,再根据其他属性排序
        {
            result = this.name.compareTo(o.name); // name为String类型,String类已经实现了CompareTo方法
        }
        return result;
    }
}

 

main 方法:

Person p1 = new Person();
        p1.setName("ab");
        p1.setAge(13);
        
        Person p2 = new Person();
        p2.setName("ya");
        p2.setAge(25);
        
        Person p3 = new Person();
        p3.setName("li");
        p3.setAge(20);
        
        Person p4 = new Person();
        p4.setName("ac");
        p4.setAge(13);
        
        List list = new ArrayList();
        list.add(p3);
        list.add(p2);
        list.add(p1);
        list.add(p4);
        
        
        System.out.println(list);
        Collections.sort(list);
        System.out.println(list);

 

 

输出:

排序前:[Person [name=li, age=20, sex=0], Person [name=ya, age=25, sex=0], Person [name=ab, age=13, sex=0], Person [name=ac, age=13, sex=0]]

排序后:[Person [name=ab, age=13, sex=0], Person [name=ac, age=13, sex=0], Person [name=li, age=20, sex=0], Person [name=ya, age=25, sex=0]]

 

分享到:
评论

相关推荐

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

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

    java中通过键盘输入来实例化类对象数组,同时对类对象排序

    java中通过键盘输入来实例化类对象数组,同时对类对象排序,希望初学java的同学们可以下载下学习下

    java对象排序

    在Java编程语言中,对象排序是一项常见的操作,特别是在处理数据结构如数组或集合时。`java sort`标签表明我们关注的是使用Java内置的排序机制。本文将深入探讨Java中的对象排序,包括基本概念、API使用以及自定义...

    List对象排序通用方法

    List对象排序通用方法List对象排序通用方法List对象排序通用方法List对象排序通用方法

    面向对象排序实验

    面向对象排序实验主要探讨的是如何在编程中利用面向对象的思想实现不同的排序算法。这个实验源自山东大学的教学课程,目的是让学生深入理解面向对象编程的核心概念,并通过实现和比较各种排序算法来提升他们的编程...

    面向对象排序方法

    面向对象排序方法是一种在编程中实现排序算法时采用的基于面向对象编程思想的技术。面向对象编程(OOP)的核心概念包括封装、继承、多态和抽象。在这篇讨论中,我们将深入探讨如何利用这些概念来设计和实现排序算法...

    根据对象属性将对象排序

    ### 根据对象属性将对象排序 在编程领域中,我们经常会遇到需要对一组对象进行排序的需求。这种排序可以基于单个属性或者多个属性来进行。本文档将详细讲解如何通过对象的一个或多个属性来实现对象的排序,并支持...

    VS2008--利用委托给对象排序.rar

    在这个特定的教程“VS2008--利用委托给对象排序.rar”中,我们将探讨如何在C#编程中使用委托来实现对象的排序。委托在.NET中扮演着类似函数指针的角色,允许我们传递方法作为参数,从而实现更灵活的代码设计。 委托...

    集合对象排序

    在编程领域,集合对象排序是一项基础且重要的任务,它涉及到数据结构和算法的知识。当我们处理包含多个元素的数据集,如数组、列表或集合时,排序能够帮助我们快速查找、分析和展示信息。本文将深入探讨如何对对象...

    List 对象排序 Demo

    本篇将通过一个名为"List对象排序Demo"的主题,深入探讨如何对Python中的`List`对象进行排序,以及相关的一些源码分析和实用工具。 首先,Python的`List`对象提供两种主要的排序方式:`sort()`方法和`sorted()`函数...

    java 按对象属性排序

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

    the-array-object-Java-sort.rar_java 对象排序

    总的来说,Java中的对象排序是一个核心技能,理解并掌握`Comparator`接口的使用对于提升代码的可读性和可维护性至关重要。通过上述小实例,你应该能掌握在Java中如何对对象数组进行降序排序,为今后的编程实践打下...

    面向对象 排序

    在“面向对象排序”中,我们探讨的是如何利用面向对象的思想和技巧来实现各种排序算法,如字符串(String)、整型(int)和长整型(long)的排序。下面将详细介绍面向对象排序的原理、设计模式以及几种常见的排序...

    java 对象 排序

    在Java编程语言中,对象排序是一项重要的操作,特别是在处理集合数据结构时。本文将深入探讨如何在Java中对对象进行排序,以及相关的知识点。 首先,Java中的对象排序主要涉及到两个核心概念:Comparable接口和...

    对象排序的并行化与分布式计算.pptx

    ### 对象排序的并行化与分布式计算 #### 并行化排序算法概述 并行化排序算法是在多核或多处理器环境下对数据进行排序的方法,它利用计算机硬件的并行处理能力来加速排序过程。此类算法的设计目的是为了提高排序...

    vue数组对象排序的实现代码

    Vue 数组对象排序的实现代码 Vue 数组对象排序的实现代码主要介绍了在 Vue 框架中对数组对象的排序方法,包括普通数组的排序和数组对象的排序。下面是对应的知识点: 普通数组的排序 在 Vue 中,对普通数组的排序...

    List对象排序通用方法[参考].pdf

    `List`对象排序通用方法就是为了解决这个问题,特别是在处理从数据库中检索出的数据列表时,避免频繁的数据库查询,转而在内存中对数据进行排序。这里我们将探讨如何对包含自定义对象的`List`进行通用排序,并减少...

    jquery对象排序

    obj为对象,如student对象,sortName为排序字段,sortOrder为升序或降序,升序为asc,降序为desc 如果两边都为数字,转换为数字比较 如果两边都为String,比较string 如果一边是数字,一边是String,转换为数字。 ...

Global site tag (gtag.js) - Google Analytics