`
kewen342757003
  • 浏览: 145061 次
社区版块
存档分类
最新评论

Java comparable的用法

 
阅读更多
首先建立一个老鼠实体,有重量和颜色的属性:
public class Mouse implements Comparable<Mouse>
{
    public int weight;
    
    public MOUSE_COLOR color;

    public Mouse(int weight, MOUSE_COLOR color)
    {
        this.weight = weight;
        this.color = color;
    }
    
    @Override
    public int compareTo(Mouse o)
    {
        if (this.weight > o.weight)
        {
            return 1;
        }
        else if (this.weight == o.weight)
        {
            return 0;
        }
        else
        {
            return -1;
        }
        
    }


然后需求按照老鼠的重量排序,排序之后输出它的颜色,这时就可以使用compareTo方法实现:
public static MOUSE_COLOR[] sortMouse(Mouse[] mouse)
    {
        MOUSE_COLOR[] sColors = new MOUSE_COLOR[mouse.length];
        
[color=red]        List<Mouse> mouseList = Arrays.asList(mouse);
        Collections.sort(mouseList);[/color]        
        for (int i = 0; i < mouse.length; i++)
        {
            sColors[i] = mouse[i].color;
        }
        return sColors;
        
    }

关键是红色的两步,第一步将数组转换成List进行处理,使用一个Arrays自带的asList方法进行初始化,将原数组作为构造参数传入。
再使用Collections工具类进行排序,这个地方的sort方法,默认使用的是Mouse类中的compareTo方法,升序和降序按照方法的返回值来决定。

在此例中
    @Override
    public int compareTo(Mouse o)
    {
        if (this.weight > o.weight)
        {
            return 1;
        }
        else if (this.weight == o.weight)
        {
            return 0;
        }
        else
        {
            return -1;
        }
        
    }

就是按照weight的大小进行升序排列, 如果写成:
if (this.weight > o.weight)
        {
            return -1;
        }
则是进行降序排序。
分享到:
评论

相关推荐

    Comparable的用法1---马克-to-win java视频

    Comparable的用法1---马克-to-win java视频的详细描述

    java排序Comparator和Comparable

    首先,`Comparable`接口是Java.lang包下的一个接口,它只有一个方法`compareTo(T o)`。任何类如果想要实现自然排序,即按照类定义的规则进行排序,都可以实现这个接口。例如,`String`类就实现了`Comparable`接口,...

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

    在 Java 中,实现 Comparable 接口的类可以使用 Arrays.sort() 或 Collections.sort() 方法对对象列表进行排序。 在本文中,我们将详细介绍如何使用 Comparable 接口对 Java 对象进行排序,包括升序、降序和倒叙...

    java中Comparable和Comparator的区别

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

    Java中Comparable和Comparator的区别

    Comparable接口来源于java.lang包,它定义了一个方法`compareTo(T o)`。任何类如果实现了Comparable接口,就表明这个类的对象可以相互比较大小。例如,Java中的String、Integer等类都实现了Comparable接口,这使得...

    Java Comparable和Comparator对比详解

    Comparable 接口位于 java.lang.Comparable 中,是一个泛型接口,需要实现 compareTo 方法,以便比较对象的大小。Comparable 接口通常用于实体类中,例如学生对象、商品对象等,可以根据不同的属性进行排序,例如...

    Comparable接口和Comparator使用示例

    实现 Comparable 接口的类可以使用 Arrays.sort() 方法对其对象数组进行排序。 在上面的示例代码中,我们定义了一个 Simple 类,该类实现了 Comparable 接口。Simple 类具有两个属性:age 和 name。我们实现了 ...

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

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

    java的Comparator和Comparable.docx

    在 Java 中,Comparator 和 Comparable 是两个非常重要的接口,它们用于对象的排序操作。这两个接口都是在 java.util 包中定义的,主要用于定制排序规则。 **一、Comparator 接口** Comparator 接口允许我们创建...

    Comparable与Comparator的区别Java开

    首先,`Comparable`接口位于`java.lang`包下,它定义了一个`compareTo()`方法,这个方法用于比较对象之间的自然顺序。如果一个类的实例需要参与排序,那么该类通常会实现`Comparable`接口。例如,`String`类就实现了...

    Comparable的用法2---马克-to-win java视频

    Comparable的用法2---马克-to-win java视频的详细描述

    Java8HashMap键与Comparable接口编程开

    这里我们将深入探讨Java 8 HashMap如何与Comparable接口结合使用,以及这背后的编程技术和设计原理。 首先,我们了解下Comparable接口。Comparable接口是Java中用于定义对象之间自然顺序的接口,它只有一个方法`...

    Java中Comparable和Comparator 2种实现方式学习

    首先,`Comparable`接口位于`java.lang`包下,它定义了一个`compareTo()`方法,用于比较当前对象与另一个对象的大小。任何类如果需要自定义排序规则,只需实现这个接口并重写`compareTo()`方法。例如,`String`、`...

    Java Comparable及Comparator接口区别详解

    Comparable 接口位于 java.lang 包下面,里面只有一个 compareTo(T) 方法。当一个类需要比较的时候,需要自行实现 Comparable 接口的 compareTo 方法。当调用集合排序方法的时候,就会调用对象的 compareTo() 方法来...

    java 中Comparable与Comparator详解与比较

    Comparable接口定义在`java.lang`包中,它只有一个方法`compareTo(T o)`,用于比较当前对象与另一个对象的大小。当一个类实现了Comparable接口,意味着类的实例可以被自然排序,无需额外的比较器。例如,String类就...

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

    在使用Comparator时,可以定义一个泛型方法,限制传入的类型T必须实现Comparable接口,这样编译器就能确保传递给方法的参数是可比较的。例如,上述的max()方法就是一个泛型方法,它接收两个实现了Comparable接口的...

    浅析Java中comparator接口与Comparable接口的区别

    这意味着如果你有一个实现了Comparable接口的对象列表(如List),你可以直接使用Collections.sort()或者Arrays.sort()方法对这个列表进行排序。例如,String类就默认实现了Comparable接口,因此可以直接对字符串...

Global site tag (gtag.js) - Google Analytics