`
abeetle
  • 浏览: 101733 次
  • 来自: ...
社区版块
存档分类
最新评论

Comparable排序

阅读更多

如果想使用排序,那么就一定离不开Comparable 接口。 它是一个简单接口,仅有一个方法compareTo(
 public interface java.lang.Comparable {
              public int compareTo(Object o);
     }

下面是一个简单的例子:
package com.discursive.jccook.collections.compare;
import java.util.*;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.collections.comparators.ReverseComparator;
public class BookComparator implements Comparator {
public int compare(Object o1, Object o2) {
   int comparison = -1;      
    if( o1 instanceof Book && o2 instanceof Book ) {
            Book b1 = (Book) o1;
            Book b2 = (Book) o2;
             String b1Name = b1.getName( );
             String b2Name = b2.getName( );
             String b1Author = b1.getAuthor( );
             String b2Author = b2.getAuthor( );
            if( StringUtils.isNotEmpty( b1Name ) &&
               StringUtils.isNotEmpty( b2Name ) ) {
                 comparison = b1Name.compareTo( b2Name );
            }
            if( comparison == 0 &&StringUtils.isNotEmpty( b1Author ) &&  StringUtils.isNotEmpty( b2Author ) ) {
                comparison = b1Author.compareTo( b2Author );
            }  
        }
        return comparison;
    }
}

还有一种情况是,使用BeanComparator 对 bean 进行单个属性的排序 ,BeanComparator 是 BeanUtils API 中的一个类,
要求这个bean有这个属性,而且有 get 和 set 方法.
如果找不到该Bean的相对的属性,则会抛出 ClassCastException
例如,"name" 属性来对集合中的 bean 进行排序而建立的实例
 private BeanComparator comparator = new BeanComparator("name");

 

分享到:
评论

相关推荐

    对比Java中的Comparable排序接口和Comparator比较器接口

    在Java编程语言中,Comparable和Comparator接口用于对对象进行比较和排序。这两个接口在很多情况下都能派上用场,但它们的应用场景和实现方式有所不同。 首先,Comparable接口是排序接口,意味着一个类如果实现了...

    java排序Comparator和Comparable

    在Java编程语言中,排序是数据处理中一个非常常见的需求,而`Comparator`和`Comparable`接口则是实现排序的关键工具。这两个接口都是用于比较对象,但它们的应用场景和使用方式有所不同。 首先,`Comparable`接口是...

    java 实现Comparable接口排序,升序、降序、倒叙

    Java 实现 Comparable 接口排序,升序、降序、倒叙 Java 中的 Comparable 接口是一个非常重要的接口,它提供了一种排序的机制,允许开发者自定义对象的排序规则。在 Java 中,实现 Comparable 接口的类可以使用 ...

    Comparable接口实现字符串比较大小排序的简单实例

    java通过Comparable接口实现字符串比较大小排序的简单实例

    Comparable接口和Comparator使用示例

    Comparable 接口和 Comparator 使用示例 在 Java 编程语言中,比较和排序是非常...Comparable 接口和 Comparator 都是 Java 中非常重要的比较和排序机制,它们提供了不同的比较和排序方式,分别适用于不同的应用场景。

    492.490.JAVA基础教程_常用类-自定义类实现Comparable自然排序(492).rar

    在Java编程语言中,`Comparable`接口是一个非常重要的概念,特别是在处理对象排序的时候。这个教程很可能是关于如何在自定义类中实现`Comparable`接口,以便进行自然排序。`Comparable`接口位于`java.lang`包中,它...

    Comparable&Comparator区别

    在Java编程中,为了对自定义对象进行排序,Java提供了两种接口:`Comparable`与`Comparator`。这两种接口各有优势,适用于不同的场景。本文将深入探讨这两种接口的区别及其应用场景,帮助读者更好地理解它们的工作...

    java中Comparable和Comparator的区别

    在Java编程语言中,Comparable和Comparator接口是两个重要的概念,它们都用于对象的排序,但有着不同的使用场景和特点。本文将深入探讨这两个接口的区别,以及它们在实际开发中的应用。 首先,我们来了解一下...

    java,Comparable接口实例

    1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort ...

    Java自然排序Comparable使用方法解析

    Java自然排序Comparable使用方法解析 Java中的自然排序是指使用Comparable接口来实现对象的排序,通过重写compareTo方法来控制排序结果。Comparable接口是Java中的一个接口,用于定义对象的自然顺序。它只有一个...

    comparator接口与Comparable接口的区别

    Comparator接口与Comparable接口是Java语言中两个重要的接口,它们都是用于比较和排序自定义类的对象的大小的。虽然它们两个都是用于比较的接口,但是它们有着不同的实现方式和应用场景。 相同之处:Comparator接口...

    计算机后端-Java-Java核心基础-第22章 常用类 21. Comparable自然排序举例.avi

    计算机后端-Java-Java核心基础-第22章 常用类 21. Comparable自然排序举例.avi

    Java使用Comparable解决排序问题

    在Java编程中,排序是一个常见的任务,而`Comparable`接口提供了一种自定义排序规则的方式。本篇文章将详细讲解如何利用`Comparable`接口解决排序问题,以Java读取文件并根据特定规则对数据进行排序为例。 首先,...

    Java中Comparable和Comparator的区别

    在Java编程语言中,Comparable和Comparator接口是两个非常重要的组件,它们主要用来进行对象的比较和排序。了解它们之间的区别对于提升代码的可维护性和灵活性至关重要。 Comparable接口来源于java.lang包,它定义...

    计算机后端-Java-Java核心基础-第22章 常用类 22. 自定义类实现Comparable自然排序.avi

    计算机后端-Java-Java核心基础-第22章 常用类 22. 自定义类实现Comparable自然排序.avi

    Java 类自定义排序

    Java 中的自定义排序是指在编写 Java 程序时,通过实现 Comparable 接口来实现对对象的排序。在本节中,我们将通过一个实体类的示例来演示如何实现自定义排序。 自定义排序的必要性 在 Java 程序中,排序是非常...

    java中实现Comparable接口实现自定义排序的示例

    "java中的自定义排序实现" 在 Java 中实现自定义排序的需求是非常...这篇文章向大家展示了如何使用 Comparable 接口实现自定义排序的示例,这将有助于大家更好地理解 Java 中的排序机制,并更好地应用于实际开发中。

    Java排序算法(桶排序,基数排序等)

    在计算机科学中,排序算法是用于对一组数据进行排列的算法。Java 中实现排序算法通常涉及到多种方法,每种算法都有其特定的适用场景和性能特点。下面将详细介绍标题和描述中提到的一些常见排序算法,并提供Java实现...

    Comparable与Comparator的区别Java开

    在Java编程语言中,`Comparable`接口和`Comparator`接口是两种重要的排序机制,它们用于对集合中的对象进行比较和排序。理解它们的区别对于任何Java开发者来说都是至关重要的。 首先,`Comparable`接口位于`java....

Global site tag (gtag.js) - Google Analytics