2017-04-18 69 views
2

我想比較我自己的類人的對象的名稱,所以我可以排序一個ArrayList。我跟着我的老師做了什麼,但似乎無法理解爲什麼它不起作用。比較對象不工作

import java.util.*; 

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

輸出是什麼?你有什麼錯誤? –

回答

2

compare()方法是正確的,但是您使用的接口是錯誤的。實現比較器,不可比。他們很容易混淆。

import java.util.*; 

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

它應該是Comparator接口。 Comparator接口有compare()方法不是Comparable

public class SortName implements Comparator<Person> 
+1

Sanket D感謝downvote,但它是真的 – strash

+0

我不會downvote你,因爲你的也是 – strash

+0

:)......混亂髮生..我明白......這就是我們如何學習。 – ProgrammerBoy

1

您可以的compareTo過嘗試。

import java.util.*; 


public class SortName implements Comparable<Person>{ 
    public int compareTo(Person p2){ 
     return this.getName().compareTo(p2.getName()); 
    } 
} 
+2

其錯誤。 Comparable的compareTo()方法確實接受兩個參數,它的compareTo(Object obj) – ProgrammerBoy