比较对象不起作用

时间:2017-04-18 17:58:06

标签: java oop compare

我正在尝试比较我自己的Person对象的名称,所以我可以对ArrayList进行排序。我跟着老师的所作所为,但似乎无法理解为什么它不起作用。

import java.util.*;

public class SortName implements Comparable<Person>{
    public int compare(Person p1, Person p2){
        return p1.getName().compareTo(p2.getName());
    }
}

4 个答案:

答案 0 :(得分:3)

它应该是Comparator接口。 Comparator界面的compare()方法不是Comparable

public class SortName implements Comparator<Person>

答案 1 :(得分:2)

compare()方法是正确的,但是你使用了错误的接口。实现比较器,而不是可比较的。它们很容易混淆。

import java.util.*;

public class SortName implements Comparator<Person>{
    public int compare(Person p1, Person p2){
        return p1.getName().compareTo(p2.getName());
    }
}

答案 2 :(得分:1)

您可以使用public function categoria() { return $this->belongsToMany('App\Models\Categoria', 'erp_product_category', 'erp_productid', 'erp_categoryid'); } 方法尝试:

compareTo()

答案 3 :(得分:1)

参考What is the difference between compare() and compareTo()?

Comparator界面允许您覆盖其int compare(Object o1, Object o2)方法。
实现此接口可帮助您对内置数据结构或自定义数据数据结构进行排序。

Comparable界面可让您覆盖其int compareTo(Object o)方法 示例:(x.compareTo(y)==0) == (x.equals(y))