我收到錯誤的異常在線程「主要」 java.lang.ClassCastException :com.genous.Employee不能轉換爲java.lang.Comparable的我想根據名字來縮短員工,但我得到這個錯誤?
在java.util.Arrays.mergeSort(Arrays.java :1157)
在java.util.Arrays.sort(Arrays.java:1092)
在java.util.Collections.sort(Collections.java:134)
在com.genious。 Employee.main(Employee.java:54)//
public class Employee implements Comparator
{
String firstname;
String lastname;
int mobileno;
public Employee(String firstname,String lastname,int mobileno)
{
this.firstname=firstname;
this.lastname=lastname;
this.mobileno=mobileno;
}
@Override
public String toString() {
return firstname;
}
@Override
public int compare(Object o1, Object o2) {
Employee e2=(Employee)o1;
Employee e3=(Employee)o2;
int i=e2.firstname.compareTo(e3.firstname);
if(i!=0)
return i;
return i;
}
/**
* @param args
*/
public static void main(String[] args) {
ArrayList list=new ArrayList();
Employee e=new Employee("anand","pandey",93456666);
Employee e1=new Employee("sheel","nidhi",678956344);
Employee e5=new Employee("shumit", "Kumar", 97390267);
Employee e6=new Employee("Kamal", "Kumar", 97390267);
list.add(e);
list.add(e1);
list.add(e5);
list.add(e6);
System.out.println(list);
Collections.sort(list);
System.out.println(list);
}
}
你打算如何確定一名員工是否與另一名員工相同?如果你只想要獨特的elemetns被存放,使用集合。如果允許重複員工,請使用列表 –
爲什麼地球上會有ArrayList中的數百萬條記錄的數據庫,而不是您知道的關係數據庫。不僅對RDBMS目錄執行查詢要容易得多,而且對系統資源更友好且更強大。看起來你正在使用錯誤的工具來解決那些非常普遍的問題。 – scottb
如果是面試問題,你應該寫一下。那麼社會就會明白,問題不在於如何做到這一點。問題是如何使用ArrayList作爲數據結構。這是關於算法的更多信息 – hatesms