如何实现自定义对象的比较方法

时间:2016-05-11 14:22:50

标签: java comparable

在java中我有一个我自己的数组列表(已实现)我有一个排序方法,所以我需要“比较”和#39;这就是为什么我实现了Comparable并使类抽象化的方法。但是,如果我使用主要的arraylist我必须实现比较方法。但是我无法理解我如何能够实现这一点。(我有一个限制,例如,如果我有一个' order' class i cant的arraylist在订单类中实现可比较的)

的ArrayList

public abstract class ArrayList<T>  implements  Comparable

内部排序功能

    Comparable left=(Comparable)L[i];
    Comparable right=(Comparable)R[j];
    for(int k=start;k<=end;k++)
    {
        if(left.compareTo(right)<=0)
        {
            array[k]=L[i];
            i++;
            left=(Comparable)L[i];

        }

从主要

ArrayList<Order> order = new ArrayList<Order>() {
        @Override
        public int compareTo(Object o) {
            if(this)// but this main is not order class this is arraylist class
            return 0;
        }
    };

1 个答案:

答案 0 :(得分:1)

为什么ArrayList实施Comparable?你想比较2个名单吗? 如果要比较或排序列表的元素,则元素应该是Comparable,而不是列表本身。

您还可以查看以下问题:How to use Comparator in Java to sort 然后,您必须为您的班级Comparator实施Order(而不是界面Comparable